.NET发送HTTP请求的方式
1、HttpWebRequest
这是.NET创建者最初开发用于使用HTTP请求的标准类。使用HttpWebRequest可以让开发者控制请求/响应流程的各个方面,如 timeouts, cookies, headers, protocols。另一个好处是HttpWebRequest类不会阻塞UI线程。例如,当您从响应很慢的API服务器下载大文件时,您的应用程序的UI不会停止响应。HttpWebRequest通常和WebResponse一起使用,一个发送请求,一个获取数据。HttpWebRquest更为底层一些,能够对整个访问过程有个直观的认识,但同时也更加复杂一些。
这种方法是早期开发者使用的方法,在当前业务中已经很少使用,由于其更加底层,需要处理一些细节,最多用于框架内部操作。
2、HttpClient
目前业务上使用的比较多的是HttpClient,它适合用于多次请求操作,一般设置好默认头部后,可以进行重复多次的请求,基本上用一个实例可以提交任何的HTTP请求。此外,HttpClient提供了异步支持,可以轻松配合async await 实现异步请求。
HttpClient推荐使用单一实例共享使用,发关请求的方法推荐使用异步的方式。
private static readonly HttpClient client = new HttpClient();
//发送Get请求
var responseString = await client.GetStringAsync("http://www.example.com/recepticle.aspx");
//发送Post请求
var values = new Dictionary
{
{ "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();
3、IHttpClientFactory
在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求。
最佳实践:ASP.NET Core 最好使用IHttpClientFactory来创建单例的HttpClient对象,用HttpClient进行远程http webapi调用。
使用细节,请参考:在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求 | Microsoft Docs
更新于:2023-05-08
标签:HTTP,请求,发送,使用,var,NET,HttpClient From: https://www.cnblogs.com/idasheng/p/17380772.html