Rumah >pembangunan bahagian belakang >C++ >Bagaimana cara menghantar permintaan pos http dalam .net menggunakan kaedah yang berbeza?

Bagaimana cara menghantar permintaan pos http dalam .net menggunakan kaedah yang berbeza?

Patricia Arquette
Patricia Arquetteasal
2025-02-02 16:36:12945semak imbas

How to Send HTTP POST Requests in .NET Using Different Methods?

.net Hantar permintaan pos http

Pengenalan

Dalam .NET, HTTP Post meminta pemaju untuk menghantar data ke pelayan. Data ini boleh menggunakan pelbagai format, seperti JSON, XML atau membentuk data pengekodan URL. Artikel ini akan menyeluruh secara menyeluruh bagaimana untuk mengeluarkan permintaan pos HTTP dalam .NET untuk meneroka kaedah yang berbeza dan memberikan contoh kod.

Kaedah 1: Gunakan httpclient (cadangan) **

httpClient adalah kaedah cadangan untuk permintaan HTTP dalam .NET, dengan prestasi tinggi. Ia boleh didapati dalam versi .NET yang paling moden dan menyediakan operasi tak segerak.

Tetapan:

Permintaan pos:

<code>private static readonly HttpClient client = new HttpClient();</code>

Dapatkan Permintaan:

<code>var values = new Dictionary<string, string>()
{
    { "thing1", "hello" },
    { "thing2", "world" }
};

var content = new FormUrlEncodedContent(values);

var response = await client.PostAsync("http://www.example.com/recepticle.aspx", content);

var responseString = await response.Content.ReadAsStringAsync();</code>

Kaedah 2: Perpustakaan pihak ketiga RestSharp:

<code>var responseString = await client.GetStringAsync("http://www.example.com/recepticle.aspx");</code>

flurl.http:

kaedah 3: httpwebrequest (tidak disyorkan) **
<code>var request = new RestRequest("resource/{id}");
request.AddParameter("thing1", "Hello");
request.AddParameter("thing2", "world");
var response = client.Post(request);
var content = response.Content; // 原始内容作为字符串</code>

httpwebrequest adalah kaedah yang lebih lama, dan prestasi tidak sebaik httpclient. Atas sebab keserasian, ia masih disokong. Permintaan pos:

<code>var responseString = await "http://www.example.com/recepticle.aspx"
    .PostUrlEncodedAsync(new { thing1 = "hello", thing2 = "world" })
    .ReceiveString();</code>

Kaedah 4: WebClient (tidak disyorkan) **

WebClient adalah pilihan lain, tetapi kecekapannya tidak begitu cekap seperti HTTPClient.

Permintaan pos:

<code>string postData = "thing1=" + Uri.EscapeDataString("hello");
postData += "&thing2=" + Uri.EscapeDataString("world");
var data = Encoding.ASCII.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";

using (var stream = request.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}</code>

Kesimpulan

.NET Hantar permintaan pos HTTP boleh menggunakan pelbagai kaedah. HttpClient adalah kaedah pilihan, dan perpustakaan ketiga -tiga menyediakan fungsi lain. Atas sebab keserasian, httpwebrequest dan webclient masih boleh digunakan, tetapi disyorkan untuk menggunakan kaedah moden untuk mendapatkan prestasi dan fungsi yang optimum.

Atas ialah kandungan terperinci Bagaimana cara menghantar permintaan pos http dalam .net menggunakan kaedah yang berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn