.Net及.Net Core下HttpClient详解
发布网友
发布时间:2022-12-25 02:29
我来回答
共1个回答
热心网友
时间:2023-10-11 03:55
HttpClient 提供的方法:
以上用法是不推荐的,HttpClient 这个对象有点特殊,虽然继承了 IDisposable 接口,但它是可以被共享的(或者说可以被复用),且线程安全。从项目经验来看,推荐在整个应用的生命周期内复用 HttpClient 实例,而不是每次RPC请求的时候就实例化一个,在高并发的情况下,会造成Socket资源的耗尽。
我们采用一种预热方式,在正式发post请求之前,先发一个head请求:
经测试,通过这种热身方法,可以将第一次请求的耗时由2s左右降到1s以内(测试结果是700多ms)。
复用 HttpClient 后,依然存在一些问题:
那么有没有办法解决HttpClient的这些个问题?直到 HttpClientFactory 的出现,这些坑 “完美” 规避掉了。
微软官网:在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求