Realizar una solicitud web HTTP POST en C#
-
Realice una solicitud web HTTP POST con la clase
WebClient
enC#
-
Realice una solicitud web HTTP POST con la clase
HttpWebRequest
enC#
-
Realice una solicitud web HTTP POST con la clase
HttpClient
enC#
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
.
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