我正在使用 ASP.NET Core 开发 Web api 服务,我需要执行 http 请求。我读了很多关于 HttpClient 的文章,我知道我必须改用 HttpClientfactory。我将把 http 请求调用封装到我的自定义类中。
我预计会有相对大量的客户请求,我试图了解哪种方式在性能方面更好(附两个例子)?
我更喜欢第二种方式,因为我可以将它用于静态类,但我不确定性能。
// IHttpClientFactory registration
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpClient();
}
// my first way (dependency injection into custom class)
public class CustomClass
{
private readonly IHttpClientFactory _clientFactory;
public CustomClass(IHttpClientFactory clientFactory)
{
_clientFactory = clientFactory;
}
}
// my second way
var serviceProvider = new ServiceCollection().AddHttpClient().BuildServiceProvider();
var httpClientFactory = serviceProvider.GetService<IHttpClientFactory>();
var client = httpClientFactory.CreateClient();