using Microsoft.Extensions.DependencyInjection;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Reflection;
namespace FastGithub.Scanner
{
///
/// HttpClient工厂
///
[Service(ServiceLifetime.Singleton)]
sealed class HttpClientFactory
{
///
/// 程序集版本信息
///
private static readonly AssemblyName assemblyName = typeof(HttpClientFactory).Assembly.GetName();
///
/// 请求头的默认UserAgent
///
private readonly static ProductInfoHeaderValue defaultUserAgent = new(assemblyName.Name ?? "FastGithub", assemblyName.Version?.ToString());
///
/// 创建httpClient
///
///
public HttpClient Create(bool allowAutoRedirect = true)
{
var httpClient = new HttpClient(new HttpClientHandler
{
Proxy = null,
UseProxy = false,
AllowAutoRedirect = allowAutoRedirect
});
httpClient.DefaultRequestHeaders.Accept.TryParseAdd("*/*");
httpClient.DefaultRequestHeaders.UserAgent.Add(defaultUserAgent);
return httpClient;
}
}
}