Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

178 wiersze
7.7 KiB

  1. using JT808.Gateway.Abstractions;
  2. using JT808.Protocol;
  3. using Microsoft.Extensions.Configuration;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Net.Http.Headers;
  8. using System.Text;
  9. namespace JT808.Gateway.WebApiClientTool
  10. {
  11. /// <summary>
  12. ///
  13. /// </summary>
  14. public static class JT808HttpClientExtensions
  15. {
  16. const int timeout = 15;
  17. /// <summary>
  18. ///
  19. /// </summary>
  20. /// <param name="serviceDescriptors"></param>
  21. /// <param name="webapiUri"></param>
  22. /// <param name="token"></param>
  23. /// <returns></returns>
  24. public static IServiceCollection AddJT808WebApiClientTool(this IServiceCollection serviceDescriptors, Uri webapiUri,string token)
  25. {
  26. serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c =>
  27. {
  28. c.DefaultRequestHeaders.Add("token", token);
  29. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  30. c.BaseAddress = webapiUri;
  31. c.Timeout = TimeSpan.FromSeconds(timeout);
  32. })
  33. .AddTypedClient<JT808HttpClient>();
  34. return serviceDescriptors;
  35. }
  36. /// <summary>
  37. ///
  38. /// </summary>
  39. /// <param name="serviceDescriptors"></param>
  40. /// <param name="configuration"></param>
  41. /// <returns></returns>
  42. public static IServiceCollection AddJT808WebApiClientTool(this IServiceCollection serviceDescriptors, IConfiguration configuration)
  43. {
  44. serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c =>
  45. {
  46. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  47. c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get<string>());
  48. c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get<string>());
  49. c.Timeout = TimeSpan.FromSeconds(timeout);
  50. })
  51. .AddTypedClient<JT808HttpClient>();
  52. return serviceDescriptors;
  53. }
  54. /// <summary>
  55. ///
  56. /// </summary>
  57. /// <param name="jT808Builder"></param>
  58. /// <param name="configuration"></param>
  59. /// <returns></returns>
  60. public static IJT808Builder AddWebApiClientTool(this IJT808Builder jT808Builder, IConfiguration configuration)
  61. {
  62. jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c =>
  63. {
  64. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  65. c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get<string>());
  66. c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get<string>());
  67. c.Timeout = TimeSpan.FromSeconds(timeout);
  68. })
  69. .AddTypedClient<JT808HttpClient>();
  70. return jT808Builder;
  71. }
  72. /// <summary>
  73. ///
  74. /// </summary>
  75. /// <param name="jT808Builder"></param>
  76. /// <param name="webapiUri"></param>
  77. /// <param name="token"></param>
  78. /// <returns></returns>
  79. public static IJT808Builder AddWebApiClientTool(this IJT808Builder jT808Builder, Uri webapiUri, string token)
  80. {
  81. jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c =>
  82. {
  83. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  84. c.DefaultRequestHeaders.Add("token", token);
  85. c.BaseAddress = webapiUri;
  86. c.Timeout = TimeSpan.FromSeconds(timeout);
  87. })
  88. .AddTypedClient<JT808HttpClient>();
  89. return jT808Builder;
  90. }
  91. /// <summary>
  92. ///
  93. /// </summary>
  94. /// <param name="serviceDescriptors"></param>
  95. /// <param name="webapiUri"></param>
  96. /// <param name="token"></param>
  97. /// <returns></returns>
  98. public static IServiceCollection AddJT808WebApiClientTool<TJT808HttpClient>(this IServiceCollection serviceDescriptors, Uri webapiUri, string token)
  99. where TJT808HttpClient : JT808HttpClient
  100. {
  101. serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c =>
  102. {
  103. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  104. c.DefaultRequestHeaders.Add("token", token);
  105. c.BaseAddress = webapiUri;
  106. c.Timeout = TimeSpan.FromSeconds(timeout);
  107. })
  108. .AddTypedClient<TJT808HttpClient>();
  109. return serviceDescriptors;
  110. }
  111. /// <summary>
  112. ///
  113. /// </summary>
  114. /// <param name="serviceDescriptors"></param>
  115. /// <param name="configuration"></param>
  116. /// <returns></returns>
  117. public static IServiceCollection AddJT808WebApiClientTool<TJT808HttpClient>(this IServiceCollection serviceDescriptors, IConfiguration configuration)
  118. where TJT808HttpClient : JT808HttpClient
  119. {
  120. serviceDescriptors.AddHttpClient("JT808WebApiClientTool", c =>
  121. {
  122. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  123. c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get<string>());
  124. c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get<string>());
  125. c.Timeout = TimeSpan.FromSeconds(timeout);
  126. })
  127. .AddTypedClient<TJT808HttpClient>();
  128. return serviceDescriptors;
  129. }
  130. /// <summary>
  131. ///
  132. /// </summary>
  133. /// <param name="jT808Builder"></param>
  134. /// <param name="configuration"></param>
  135. /// <returns></returns>
  136. public static IJT808Builder AddWebApiClientTool<TJT808HttpClient>(this IJT808Builder jT808Builder, IConfiguration configuration)
  137. where TJT808HttpClient : JT808HttpClient
  138. {
  139. jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c =>
  140. {
  141. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  142. c.DefaultRequestHeaders.Add("token", configuration.GetSection("JT808WebApiClientToolConfig:Token").Get<string>());
  143. c.BaseAddress = new Uri(configuration.GetSection("JT808WebApiClientToolConfig:Uri").Get<string>());
  144. c.Timeout = TimeSpan.FromSeconds(timeout);
  145. })
  146. .AddTypedClient<TJT808HttpClient>();
  147. return jT808Builder;
  148. }
  149. /// <summary>
  150. ///
  151. /// </summary>
  152. /// <param name="jT808Builder"></param>
  153. /// <param name="webapiUri"></param>
  154. /// <param name="token"></param>
  155. /// <returns></returns>
  156. public static IJT808Builder AddWebApiClientTool<TJT808HttpClient>(this IJT808Builder jT808Builder, Uri webapiUri, string token)
  157. where TJT808HttpClient: JT808HttpClient
  158. {
  159. jT808Builder.Services.AddHttpClient("JT808WebApiClientTool", c =>
  160. {
  161. c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  162. c.DefaultRequestHeaders.Add("token", token);
  163. c.BaseAddress = webapiUri;
  164. c.Timeout = TimeSpan.FromSeconds(timeout);
  165. }).AddTypedClient<TJT808HttpClient>();
  166. return jT808Builder;
  167. }
  168. }
  169. }