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