Realizar una solicitud web HTTP POST en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Realice una solicitud web HTTP POST con la clase WebClient en C#
  2. Realice una solicitud web HTTP POST con la clase HttpWebRequest en C#
  3. Realice una solicitud web HTTP POST con la clase HttpClient en C#
Realizar una solicitud web HTTP POST en C#

Este tutorial analizará los métodos para realizar una solicitud web HTTP POST en C#.

Realice una solicitud web HTTP POST con la clase WebClient en C#

La clase WebClient proporciona muchos métodos para enviar y recibir datos de una URL en C#. Podemos realizar solicitudes HTTP POST utilizando la función WebClient.UploadValues(url, valores) de la clase WebClient en C#. El siguiente ejemplo de código nos muestra cómo podemos hacer una simple solicitud web HTTP POST con la clase WebClient en C#.

using System.Net;
using System.Collections.Specialized;

var wb = new WebClient() var data = new NameValueCollection();
string url = "www.example.com" data["username"] = "myUser";
data["password"] = "myPassword";

var response = wb.UploadValues(url, "POST", data);

En el código anterior, creamos el cliente web wb para enviar datos a la url. Inicializamos la variable data que queremos enviar a la url. Realizamos la Solicitud Web HTTP POST a la url especificando POST dentro de los parámetros de la función wb.UploadValues(url, "POST", data). La respuesta de la url se guarda dentro de la variable reponse.

Realice una solicitud web HTTP POST con la clase HttpWebRequest en C#

La clase HttpWebRequest proporciona métodos para interactuar directamente con el servidor utilizando el protocolo HTTP en C#. Podemos usar la HttpWebRequest.Method = "POST" propiedad para especificar que una solicitud web HTTP es una solicitud POST en C#. El siguiente ejemplo de código nos muestra cómo hacer una simple solicitud web HTTP POST con la clase HttpWebRequest en C#.

using System.Net;
using System.Text;
using System.IO;

string url = "http://www.example.com" var request = (HttpWebRequest)WebRequest.Create(url);

var postData = "username=" + Uri.EscapeDataString("myUser");
postData += "&password=" + Uri.EscapeDataString("myPassword");
var data = Encoding.ASCII.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (var stream = request.GetRequestStream()) {
  stream.Write(data, 0, data.Length);
}

var response = (HttpWebResponse)request.GetResponse();

En el código anterior, creamos la solicitud web HTTP solicitud a la url. Especificamos que la solicitud es una solicitud POST con la propiedad request.Method = "POST". Inicializamos los datos postData que queremos enviar a la url con la función Uri.EscapeDataString() y codificamos los datos en bytes de la variable data. Especificamos la longitud de los datos que queremos enviar a la url con la propiedad request.ContentLength = data.Length. Al final, creamos un stream y escribimos datos usando la función stream.Write(). Capturamos la respuesta de la url con la función request.GetResponse() y la almacenamos en el objeto de clase HTTPWebResponse.

Realice una solicitud web HTTP POST con la clase HttpClient en C#

La clase HttpClient proporciona métodos para enviar solicitudes HTTP y recibir respuestas HTTP en C#. Podemos hacer una solicitud web HTTP POST con la función HttpClient.PostAsync(url, data) donde url es la URL, y los data son los datos que queremos enviar a la url. El siguiente ejemplo de código nos muestra cómo hacer una solicitud HTTP POST simple con la clase HttpClient.

using System.Net.Http;

readonly HttpClient client = new HttpClient();
var values =
    new Dictionary<string, string> { { "username", "myUser" }, { "password", "myPassword" } };

string url = "http://www.example.com" var data = new FormUrlEncodedContent(values);
var response = await client.PostAsync(url, data);

En el código anterior, creamos el cliente HTTP de sólo lectura client e inicializamos la url. Almacenamos los datos que queremos enviar a la url en el diccionario values. Luego convertimos los values al tipo application/x-www-form-urlencoded con la función FormUrlEncodedContent(). Al final, hicimos una solicitud web HTTP POST con la función client.PostAsync(url, data) y almacenamos la respuesta de la url dentro de la variable response.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn