.Net及.Net Core下HttpClient详解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.Net及.Net Core下HttpClient详解相关的知识,希望对你有一定的参考价值。

参考技术A HttpClient 提供的方法:

以上用法是不推荐的,HttpClient 这个对象有点特殊,虽然继承了 IDisposable 接口,但它是可以被共享的(或者说可以被复用),且线程安全。从项目经验来看,推荐在整个应用的生命周期内复用 HttpClient 实例,而不是每次RPC请求的时候就实例化一个,在高并发的情况下,会造成Socket资源的耗尽。

我们采用一种预热方式,在正式发post请求之前,先发一个head请求:

经测试,通过这种热身方法,可以将第一次请求的耗时由2s左右降到1s以内(测试结果是700多ms)。

复用 HttpClient 后,依然存在一些问题:

那么有没有办法解决HttpClient的这些个问题?直到 HttpClientFactory 的出现,这些坑 “完美” 规避掉了。

微软官网:在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求

以上是关于.Net及.Net Core下HttpClient详解的主要内容,如果未能解决你的问题,请参考以下文章

.NET Core Httpclient 有效,但 .Net Framework 4.7.2 httpclient 无效

.Net Core 3.0后台使用httpclient请求网络网页和图片_使用Core3.0做一个简单的代理服务器

.NET CORE HttpClient使用

Httpclient在.net core3.1上成功运行,但更新到.net 5中连接超时(System.Net.Sockets.SocketException (10060)) C#

在.NET Core使用 HttpClient 的正确方式

《ASP.NET Core 6框架揭秘》实例演示[18]:HttpClient处理管道