我的用例:我正在编写一个需要连接到多租户 API 的应用程序。每个请求的基地址、标头和身份验证将因请求而异。
我在.NET Core中遇到了
IHttpClientFactory
的概念,我想我理解了底层逻辑。它每次都会给你一个新的HttpClient
; HttpClientHandlers
(正在做的工作)由 IHttpClientFactory
创建和管理,并且可能可以重用。
我的问题:当我必须连接到不同租户的 API 时,使用
IHttpClientFactory
(在请求之间重用 HttpClientHandlers
)是否安全? - 因此不同的端点/基地址/标头/身份验证。一个请求中的信息会泄漏或污染后续请求吗?
我将为每个调用创建新的
HttpMessageRequest
对象,并且我将拥有由HttpClient
提供的不同的IHttpClientFactory
,是的...
PS:我还读到微软透露,如果您有 cookie 处理要求,请远离
IHttpClientFactory
。
据说使用IClientFactory时,需要
还建议仅使用 httpclient 将
PooledConnectionLifetime
设置为所需的间隔。 https://learn.microsoft.com/en-us/dotnet/fundamentals/networking/http/httpclient-guidelines#recommended-use