Effettua richiesta Web HTTP POST in C#
-
Effettuare una richiesta Web HTTP POST con la classe
WebClient
inC#
-
Effettuare una richiesta Web HTTP POST con la classe
HttpWebRequest
inC#
-
Effettuare una richiesta Web HTTP POST con la classe
HttpClient
inC#
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
.
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