Stellen Sie eine HTTP-POST-Webanforderung in C#

Muhammad Maisam Abbas 16 Februar 2024
  1. Erstellen Sie eine HTTP-POST-Webanforderung mit der Klasse WebClient in C#
  2. Erstellen Sie eine HTTP-POST-Webanforderung mit der Klasse HttpWebRequest in C#
  3. Erstellen Sie eine HTTP-POST-Webanforderung mit der Klasse HttpClient in C#
Stellen Sie eine HTTP-POST-Webanforderung in C#

In diesem Lernprogramm werden Methoden zum Erstellen einer HTTP-POST-Webanforderung in C# erläutert.

Erstellen Sie eine HTTP-POST-Webanforderung mit der Klasse WebClient in C#

Die Klasse WebClient bietet viele Methoden zum Senden und Empfangen von Daten an eine URL in C#. Wir können HTTP-POST-Anforderungen mithilfe der Funktion WebClient.UploadValues(url, values) der Klasse WebClient in C# stellen. Das folgende Codebeispiel zeigt uns, wie wir mit der Klasse WebClient in C# eine einfache HTTP-POST-Webanforderung erstellen können.

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);

Im obigen Code erstellen wir den Webclient wb zum Senden von Daten an die url. Wir initialisieren die Variable data, die wir an die url senden möchten. Wir stellen die HTTP-POST-Webanforderung an die url, indem wir POST in den Parametern der Funktion “wb.UploadValues ​​(URL,” POST “, Daten)” angeben. Die Antwort von der url wird in der Variablen reponse gespeichert.

Erstellen Sie eine HTTP-POST-Webanforderung mit der Klasse HttpWebRequest in C#

Die Klasse HttpWebRequest bietet Methoden zur direkten Interaktion mit dem Server mithilfe des HTTP-Protokolls in C#. Wir können die Eigenschaft HttpWebRequest.Method = "POST" verwenden, um anzugeben, dass eine HTTP-Webanforderung eine POST-Anforderung in C# ist. Das folgende Codebeispiel zeigt, wie eine einfache HTTP-POST-Webanforderung mit der Klasse HttpWebRequest in C# erstellt wird.

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();

Im obigen Code haben wir die HTTP-Webanforderung request an die url erstellt. Wir haben angegeben, dass die request eine POST-Anfrage mit der Eigenschaft request.Method = "POST" ist. Wir haben die Daten postData, die wir an die url senden möchten, mit der Funktion Uri.EscapeDataString() initialisiert und die Daten in die Byte-Variable data codiert. Wir geben die Länge der Daten an, die wir mit der Eigenschaft request.ContentLength = data.Length an die url senden möchten. Am Ende haben wir einen stream erstellt und Daten mit der Funktion stream.Write() geschrieben. Wir haben die Antwort von der url mit der Funktion request.GetResponse() erfasst und im Klassenobjekt response HTTPWebResponse gespeichert.

Erstellen Sie eine HTTP-POST-Webanforderung mit der Klasse HttpClient in C#

Die Klasse HttpClient bietet Methoden zum Senden von HTTP-Anforderungen und zum Empfangen von HTTP-Antworten in C#. Wir können eine HTTP-POST-Webanforderung mit der Funktion HttpClient.PostAsync(url, data) stellen, wobei url die URL und die Daten die Daten sind, die wir an die url senden möchten. Das folgende Codebeispiel zeigt, wie eine einfache HTTP-POST-Anforderung mit der Klasse HttpClient erstellt wird.

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);

Im obigen Code haben wir den schreibgeschützten HTTP-Client client erstellt und die url initialisiert. Wir haben die Daten, die wir an die url senden möchten, im Dictionary values gespeichert. Anschließend haben wir die Werte mit der Funktion FormUrlEncodedContent() in den Typ application/x-www-form-urlencoded konvertiert. Am Ende haben wir eine HTTP-POST-Webanforderung mit der Funktion client.PostAsync(url, data) gestellt und die Antwort von der url in der Variablen response gespeichert.

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