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; } } }