https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/http-requests?view=aspnetcore-5.0#consumption-patterns
在 ASP.NET Core 中使用 IHttpClientFactory 发出 HTTP 请求
2021/01/21
作者:
Kirk Larkin
、
Steve Gordon
、
Glenn Condron
和
Ryan Nowak
。
可以注册
IHttpClientFactory
并将其用于配置和创建应用中的
HttpClient
实例。
IHttpClientFactory
的优势如下:
提供一个中心位置,用于命名和配置逻辑
HttpClient
实例。 例如,可注册和配置名为 github 的客户端,使其访问
GitHub
。 可以注册一个默认客户端用于一般性访问。
通过
HttpClient
中的委托处理程序来编码出站中间件的概念。 提供基于 Polly 的中间件的扩展,以利用
HttpClient
中的委托处理程序。
管理基础
HttpClientMessageHandler
实例的池和生存期。 自动管理可避免手动管理
HttpClient
生存期时出现的常见 DNS(域名系统)问题。
(通过
ILogger
)添加可配置的记录体验,以处理工厂创建的客户端发送的所有请求。
查看或下载示例代码
(
如何下载
)。
此主题版本中的示例代码使用
System.Text.Json
来对 HTTP 响应中返回的 JSON 内容进行反序列化。 对于使用
Json.NET
和
ReadAsAsync<T>
的示例,请使用版本选择器选择此主题的 2.x 版本。
在应用中可以通过以下多种方式使用
IHttpClientFactory
:
命名客户端
类型化客户端
生成的客户端
最佳方法取决于应用要求。
可以通过调用
AddHttpClient
来注册
IHttpClientFactory
: