Effettua richiesta Web HTTP POST in C#

Muhammad Maisam Abbas 16 febbraio 2024
  1. Effettuare una richiesta Web HTTP POST con la classe WebClient in C#
  2. Effettuare una richiesta Web HTTP POST con la classe HttpWebRequest in C#
  3. Effettuare una richiesta Web HTTP POST con la classe HttpClient in C#
Effettua richiesta Web HTTP POST in C#

Questo tutorial discuterà i metodi per effettuare una richiesta Web HTTP POST in C#.

Effettuare una richiesta Web HTTP POST con la classe WebClient in C#

La WebClient class fornisce molti metodi per inviare e ricevere dati da un URL in C#. Possiamo effettuare richieste HTTP POST utilizzando la funzione WebClient.UploadValues(url, values) della classe WebClient in C#. Il seguente esempio di codice ci mostra come possiamo fare una semplice richiesta web HTTP POST con la classe WebClient in 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);

Nel codice sopra, creiamo il client web wb per l’invio di dati all ‘url. Inizializziamo la variabile data che vogliamo inviare all ‘url. Facciamo la richiesta Web HTTP POST all ‘url specificando POST all’interno dei parametri della funzione wb.UploadValues(url, "POST", data). La risposta dell ‘url viene salvata all’interno della variabile reponse.

Effettuare una richiesta Web HTTP POST con la classe HttpWebRequest in C#

La HttpWebRequest classe fornisce metodi per interagire direttamente con il server utilizzando il protocollo HTTP in C#. Possiamo usare la proprietà HttpWebRequest.Method = "POST" per specificare che una richiesta web HTTP è una richiesta POST in C#. Il seguente esempio di codice ci mostra come fare una semplice richiesta web HTTP POST con la classe HttpWebRequest in 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();

Nel codice sopra, abbiamo creato la richiesta web HTTP request all ‘url. Abbiamo specificato che la request è una richiesta POST con la proprietà request.Method = "POST". Abbiamo inizializzato i dati postData che vogliamo inviare all ‘url con la funzione Uri.EscapeDataString() e codificato i dati in byte variabili data. Specifichiamo la lunghezza dei dati che vogliamo inviare all ‘url con la proprietà request.ContentLength = data.Length. Alla fine, abbiamo creato uno stream e scritto i dati usando la funzione stream.Write(). Abbiamo catturato la risposta dall ‘url con la funzione request.GetResponse() e l’abbiamo memorizzata nell’oggetto response di classe HTTPWebResponse.

Effettuare una richiesta Web HTTP POST con la classe HttpClient in C#

La HttpClient classe fornisce metodi per inviare richieste HTTP e ricevere risposte HTTP in C#. Possiamo fare una richiesta web HTTP POST con la funzione HttpClient.PostAsync(url, data) dove url è l’URL e i data sono i dati che vogliamo inviare all ‘url. Il seguente esempio di codice ci mostra come fare una semplice richiesta HTTP POST con la 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);

Nel codice sopra, abbiamo creato il client HTTP di sola lettura client e inizializzato l’url. Abbiamo memorizzato i dati che vogliamo inviare all ‘url nel dizionario values. Abbiamo quindi convertito i values nel tipo application/x-www-form-urlencoded con la funzione FormUrlEncodedContent(). Alla fine, abbiamo effettuato una richiesta web HTTP POST con la funzione client.PostAsync(url, data) e memorizzato la risposta da url all’interno della variabile 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