using JT808.Gateway.Abstractions; using JT808.Protocol; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using System; using System.Collections.Generic; using System.Net.Http.Headers; using System.Text; namespace JT808.Gateway.WebApiClientTool { /// /// /// public static class JT808HttpClientExtensions { const int timeout = 15; /// /// /// /// /// /// /// public static IServiceCollection AddJT808WebApiClientTool(this IServiceCollection serviceDescriptors, Uri webapiUri,string token) { serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Add("token", token); c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); }) .AddTypedClient(); return serviceDescriptors; } /// /// /// /// /// /// public static IServiceCollection AddJT808WebApiClientTool(this IServiceCollection serviceDescriptors, IConfiguration configuration) { serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); }) .AddTypedClient(); return serviceDescriptors; } /// /// /// /// /// /// public static IJT808Builder AddWebApiClientTool(this IJT808Builder jT808Builder, IConfiguration configuration) { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); }) .AddTypedClient(); return jT808Builder; } /// /// /// /// /// /// /// public static IJT808Builder AddWebApiClientTool(this IJT808Builder jT808Builder, Uri webapiUri, string token) { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", token); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); }) .AddTypedClient(); return jT808Builder; } /// /// /// /// /// /// /// public static IServiceCollection AddJT808WebApiClientTool(this IServiceCollection serviceDescriptors, Uri webapiUri, string token) where TJT808HttpClient : JT808HttpClient { serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", token); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); }) .AddTypedClient(); return serviceDescriptors; } /// /// /// /// /// /// public static IServiceCollection AddJT808WebApiClientTool(this IServiceCollection serviceDescriptors, IConfiguration configuration) where TJT808HttpClient : JT808HttpClient { serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); }) .AddTypedClient(); return serviceDescriptors; } /// /// /// /// /// /// public static IJT808Builder AddWebApiClientTool(this IJT808Builder jT808Builder, IConfiguration configuration) where TJT808HttpClient : JT808HttpClient { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get()); c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get()); c.Timeout = TimeSpan.FromSeconds(timeout); }) .AddTypedClient(); return jT808Builder; } /// /// /// /// /// /// /// public static IJT808Builder AddWebApiClientTool(this IJT808Builder jT808Builder, Uri webapiUri, string token) where TJT808HttpClient: JT808HttpClient { jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c => { c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); c.DefaultRequestHeaders.Add("token", token); c.BaseAddress = webapiUri; c.Timeout = TimeSpan.FromSeconds(timeout); }).AddTypedClient(); return jT808Builder; } } }