Faça uma solicitação da Web HTTP POST em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Faça uma solicitação da Web HTTP POST com a classe WebClient em C#
  2. Faça uma solicitação da Web HTTP POST com a classe HttpWebRequest em C#
  3. Faça uma solicitação da Web HTTP POST com a classe HttpClient em C#
Faça uma solicitação da Web HTTP POST em C#

Este tutorial discutirá métodos para fazer uma solicitação da Web HTTP POST em C#.

Faça uma solicitação da Web HTTP POST com a classe WebClient em C#

A classe WebClient fornece muitos métodos para enviar e receber dados de um URL em C#. Podemos fazer solicitações HTTP POST usando a função WebClient.UploadValues ​​(url, valores) da classe WebClient em C#. O exemplo de código a seguir nos mostra como podemos fazer uma solicitação da Web HTTP POST simples com a classe WebClient em 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);

No código acima, criamos o cliente web wb para enviar dados para a url. Inicializamos a variável data que queremos enviar para o url. Fazemos o HTTP POST Web Request ao url especificando POST dentro dos parâmetros da função wb.UploadValues(url, "POST", data). A resposta do url é salva dentro da variável reponse.

Faça uma solicitação da Web HTTP POST com a classe HttpWebRequest em C#

A classe HttpWebRequest fornece métodos para interagir diretamente com o servidor usando o protocolo HTTP em C#. Podemos usar a HttpWebRequest.Method = "POST" propriedade para especificar que uma solicitação da web HTTP é uma solicitação POST em C#. O exemplo de código a seguir nos mostra como fazer uma solicitação da web HTTP POST simples com a classe HttpWebRequest em 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();

No código acima, criamos a solicitação da web HTTP request para o url. Especificamos que request é uma solicitação POST com a propriedade request.Method = "POST". Inicializamos os dados postData que queremos enviar para o url com a Uri.EscapeDataString() função e codificamos os dados na variável de bytes data. Especificamos o comprimento dos dados que queremos enviar para o url com a propriedade request.ContentLength = data.Length. No final, criamos um stream e escrevemos os dados usando a função stream.Write(). Capturamos a resposta do url com a função request.GetResponse() e armazenámo-la na classe HTTPWebResponse object response.

Faça uma solicitação da Web HTTP POST com a classe HttpClient em C#

A classe HttpClient fornece métodos para enviar solicitações HTTP e receber respostas HTTP em C#. Podemos fazer um pedido web HTTP POST com a função HttpClient.PostAsync(url, data) onde url é o URL e os dados são os dados que queremos enviar para o url. O exemplo de código a seguir nos mostra como fazer uma solicitação HTTP POST simples com a classe 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);

No código acima, criamos o cliente HTTP somente leitura client e inicializamos o url. Armazenamos os dados que queremos enviar para o url no dicionário values. Em seguida, convertemos os values para o tipo application/x-www-form-urlencoded com a função FormUrlEncodedContent(). No final, fizemos uma solicitação da web HTTP POST com a função client.PostAsync(url, data) e armazenamos a resposta da url dentro da variável 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