0

aspnet 核心中的 HTTP 客户端工厂

  1. 这类似于拥有 HTTPClient Pools 吗?
  2. 即使在请求完成后,客户端工厂内的客户端是否仍保持连接状态
  3. HttpClientFactory 中的客户端是重用还是 HttpClientFactory 是否为每个请求创建新客户端?
4

2 回答 2

2

警告:这个答案涉及 2018 年 .NET Core 2.1 的状态HttpClientIHttpClientFactory截至日期。现在是 2021 年 10 月,从那时起 .NET 发生了很多变化(尤其是在 .NET 5 和现在的 .NET 6 中)所以这个答案自从我最初在 2018 年研究并写下这篇文章以来,如果您长时间阅读这篇 SO 帖子,可能已经过时且不正确。


我发现这篇文章回答了你的问题(强调我的):

https://www.stevejgordon.co.uk/introduction-to-httpclientfactory-aspnetcore

使用的昂贵部分HttpClient实际上是创建HttpClientHandler和连接。以这种方式将这些池化意味着我们可以更有效地使用系统上的连接。当您使用HttpClientFactory请求 aHttpClient时,实际上每次都会获得一个新实例,这意味着我们不必担心会改变其状态。HttpClient可能(或可能不)使用HttpClientHandler池中的现有连接,因此使用现有的打开连接

于 2018-04-23T21:31:49.473 回答
0
  1. 它有自己的处理程序和池。
  2. 不,它已返回到池中,并且是免费的。
  3. 客户端被重用但在不同的池中。
于 2020-05-11T15:03:11.717 回答