我有一个类型化的HttpClient,(比如说)另一个使用IHttpClientFactory来获取HttpClient实例的服务/类。
要注册IHttpClientFactory,我将其注入为services.AddHttpClient()
。为了注册类型客户,我选择services.AddHttpClient<MyTypedClient>
我的问题是,如果我同时使用两个用例,您是否认为会有问题?对HttpMessageHandler池有什么影响?
谢谢, Cem。
答案 0 :(得分:1)
不,不。您可以使用任何您想要的。 IHttpClientFactory
处理HttpMessageHandler
个实例的集合。注入类型化的客户端时,实际上是在调用IHttpClientFactory
,并创建了新的HttpClient
实例,并将其处理程序设置为已经创建的HttpMessageHandler
实例或新实例。
换句话说,它主要是语法糖。在任何一种情况下都将调用IHttpClientFactory
,并且它始终创建一个新的HttpClient
实例,并根据名称将处理程序设置为要跟踪的实例。 “类型化”客户端实际上只是一个“命名”客户端,其类型就是名称,并且所有客户端实际上都是“命名”的,因为它们都存储在ConcurrentDictionary
中,其中名称是键。