Flurl 指出使用单例客户端是推荐的模式:
HttpClient 旨在被实例化一次并在应用程序的整个生命周期中重复使用。特别是在服务器应用程序中,为每个请求创建一个新的 HttpClient 实例将耗尽重负载下可用的套接字数量。这将导致 SocketException 错误。
但自 Asp.Net Core 2.1 以来,Net Core 2.1 中更新了 HttpClient 生命周期规则。
当你使用 HttpClientFactory 请求一个 HttpClient 时,实际上你每次都会得到一个新的实例,这意味着我们不必担心改变它的状态。此 HttpClient 可能(或可能不)使用池中现有的 HttpClientHandler ,因此使用现有的打开连接。
如何修改 Flurl 以在引擎盖下使用 IHttpClientFactory?我应该创建自定义 Flurlsettings.HttpClientFactory
并通过 MS IHttpClientFactory 创建 HttpClient 吗?