Faire une requête Web HTTP POST en C#
-
Faire une requête Web HTTP POST avec la classe
WebClient
enC#
-
Faire une requête Web HTTP POST avec la classe
HttpWebRequest
enC#
-
Faire une requête Web HTTP POST avec la classe
HttpClient
enC#
Ce didacticiel abordera les méthodes permettant de créer une requête Web HTTP POST en C#.
Faire une requête Web HTTP POST avec la classe WebClient
en C#
La classe WebClient
fournit de nombreuses méthodes pour envoyer et recevoir des données depuis une URL en C#. On peut faire des requêtes HTTP POST en utilisant la fonction WebClient.UploadValues(url, values)
de la classe WebClient
en C#. L’exemple de code suivant nous montre comment faire une simple requête Web HTTP POST avec la classe 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);
Dans le code ci-dessus, nous créons le client web wb
pour envoyer des données à l'url
. Nous initialisons la variable data
que nous voulons envoyer à url
. Nous faisons la requête Web HTTP POST à l’url
en spécifiant POST
dans les paramètres de la fonction wb.UploadValues(url, "POST", data)
. La réponse de l’url
est enregistrée dans la variable reponse
.
Faire une requête Web HTTP POST avec la classe HttpWebRequest
en C#
La classe HttpWebRequest
fournit des méthodes pour interagir directement avec le serveur en utilisant le protocole HTTP en C#. Nous pouvons utiliser la propriété HttpWebRequest.Method =" POST "
pour spécifier qu’une requête Web HTTP est une requête POST en C#. L’exemple de code suivant nous montre comment faire une simple requête web HTTP POST avec la classe 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();
Dans le code ci-dessus, nous avons créé la requête Web HTTP request
à url
. Nous avons précisé que la request
est une requête POST avec la propriété request.Method = "POST"
. Nous avons initialisé les données postData
que nous voulons envoyer à url
avec la fonction Uri.EscapeDataString()
et encodé les données en octets de la variable data
. Nous spécifions la longueur des données que nous voulons envoyer à l’url
avec la propriété request.ContentLength = data.Length
. Au final, nous avons créé un stream
et écrit des données en utilisant la fonction stream.Write()
. Nous avons capturé la réponse de l’url
avec la fonction request.GetResponse()
et l’avons stockée dans l’objet response
de classe HTTPWebResponse
.
Faire une requête Web HTTP POST avec la classe HttpClient
en C#
La classe HttpClient
fournit des méthodes pour envoyer des requêtes HTTP et recevoir des réponses HTTP en C#. On peut faire une requête web HTTP POST avec la fonction HttpClient.PostAsync(url, data)
où url
est l’URL, et les data
sont les données que l’on veut envoyer à url
. L’exemple de code suivant nous montre comment faire une simple requête HTTP POST avec 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);
Dans le code ci-dessus, nous avons créé le client HTTP en lecture seule client
et initialisé url
. Nous avons stocké les données que nous voulons envoyer à url
dans le dictionnaire values
. Nous avons ensuite converti les values
au type application/x-www-form-urlencoded
avec la fonction FormUrlEncodedContent()
. Au final, nous avons fait une requête web HTTP POST avec la fonction client.PostAsync(url, data)
et stocké la réponse de la url
dans 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