Maison >développement back-end >C++ >Comment envoyer efficacement les demandes de publication HTTP dans .NET?

Comment envoyer efficacement les demandes de publication HTTP dans .NET?

Barbara Streisand
Barbara Streisandoriginal
2025-02-02 16:46:14331parcourir

How to Efficiently Send HTTP POST Requests in .NET?

<.> Envoyez la demande de post HTTP

HTTP Post Demande d'envoi de données au serveur. Cet article traite de diverses méthodes pour effectuer efficacement les demandes de publication HTTP dans le .NET.

Méthode A: httpclient (recommandé)

httpclient est la méthode préférée pour exécuter les demandes HTTP dans les applications .NET modernes. Il est rapide, prend en charge l'exécution asynchrone et est largement disponible dans des cadres tels que .NET Framework, .NET Standard et .NET Core.

Exemple de code de demande de poste:

Méthode B: la bibliothèque tierce

<code class="language-csharp">using System.Net.Http;

...

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>

.NET propose beaucoup de bibliothèques troisième disponibles pour envoyer des demandes HTTP. Restacte

Restharp fournit un client REST complet qui prend en charge plusieurs méthodes HTTP, y compris la publication.

Exemple de code de demande de poste:

flurl.http

Flurl.http fournit une API fluide pour la demande HTTP, ce qui rend le code plus concis et plus facile à lire.
<code class="language-csharp">using RestSharp;

...

var client = new RestClient("http://example.com");
var request = new RestRequest("resource/{id}");
request.AddParameter("thing1", "Hello");
request.AddParameter("thing2", "world");
var response = client.Post(request);
var content = response.Content;</code>

Exemple de code de demande de poste:

Méthode C: httpwebRequest (non recommandé)

httpwebRequest est une classe restante qui n'est pas recommandée pour le nouveau développement. Ses performances ne sont pas aussi bonnes que HttpClient et ne prend pas en charge toutes ses fonctions.

<code class="language-csharp">using Flurl.Http;

...

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

Méthode D: WebClient (non recommandé)

WebClient est un emballage de httpwebRequest. Ses performances sont également inférieures à des fonctions httpclient et limitées.

Exemple de code de demande de poste:
<code class="language-csharp">using System.Net;
using System.Text;
using System.IO;

...

var request = (HttpWebRequest)WebRequest.Create("http://www.example.com/recepticle.aspx");
var 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";
request.ContentLength = data.Length;

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

var response = (HttpWebResponse)request.GetResponse();

var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();</code>

Sélectionnez la bonne méthode dépend de vos besoins spécifiques et de vos plates-formes cibles. Pour la plupart des applications .NET modernes, HttpClient est une option recommandée en raison de ses performances élevées, de sa flexibilité et de sa prise en charge approfondie.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn