所以,我在我的Startup.cs中向服务集合注册了一个命名客户端:
services.AddHttpClient(someServiceName,
client => client.BaseAddress = baseAddress);
现在,可以从我的服务提供者中注入一个 IHttpClientFactory
。
使用这个 IHttpClientFactory
,我可以创建一个客户端实例:
var client = httpClientFactory.CreateClient(someServiceName)
从前,必须非常小心地处理HttpClient
实例的处理,因为这通常不是正确的做法。
但是,现在我们有了HttpClientFactory
,这还重要吗?这个client
可以毫不担心地被处理吗?例如:
using (var httpClient = httpClientFactory.CreateClient(someServiceName))
using (var response = await httpClient.PostAsync(somePath, someData))
{
var content = await response.Content.ReadAsAsync<SomeResponse>();
//...
}