namespace OSS.Tools.Http { /// /// HttpClient 辅助类 /// public static class HttpClientHelper { /// /// HttpClient 的工厂实例 /// public static IHttpClientFactory? HttpClientFactory { get; set; } /// /// 获取HttpClient请求 /// /// /// /// 返回 HttpClientFactory 创建的对象, /// 如果 HttpClientFactory 未初始化,则在固定时间间隔(五分钟)返回固定的HttpClient /// internal static HttpClient? CreateClient(string? sourceName = null) { if (HttpClientFactory != null) { return string.IsNullOrEmpty(sourceName) ? HttpClientFactory.CreateClient() : HttpClientFactory.CreateClient(sourceName); } return GetDefaultClient(); } private static HttpClient? _client; private static DateTime _lastTime = DateTime.Now; /// /// 配置请求处理类 /// /// private static HttpClient GetDefaultClient() { if (_client != null) { if ((DateTime.Now - _lastTime).TotalMinutes < 5) { return _client; } } _lastTime = DateTime.Now; var handler = new HttpClientHandler { UseProxy = false }; return _client = new HttpClient(handler); } } }