using FastGithub.Configuration;
using FastGithub.DomainResolve;
using Microsoft.Extensions.Options;
namespace FastGithub.Http
{
///
/// HttpClient工厂
///
sealed class HttpClientFactory : IHttpClientFactory
{
private HttpClientHandler httpClientHanlder;
///
/// HttpClient工厂
///
///
///
public HttpClientFactory(
IDomainResolver domainResolver,
IOptionsMonitor options)
{
this.httpClientHanlder = new HttpClientHandler(domainResolver);
options.OnChange(opt => this.httpClientHanlder = new HttpClientHandler(domainResolver));
}
///
/// 创建httpClient
///
///
///
public HttpClient CreateHttpClient(DomainConfig domainConfig)
{
return new HttpClient(domainConfig, this.httpClientHanlder, disposeHandler: false);
}
}
}