HttpServiceImplNo.cs 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. using Confluent.Kafka;
  2. using IvfTl.Control.Entity.GlobalEnums;
  3. using IvfTl.Control.Services.HttpServices;
  4. using Microsoft.IdentityModel.Logging;
  5. using MySqlX.XDevAPI;
  6. using NetTaste;
  7. using Newtonsoft.Json;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Net.Http.Headers;
  11. using System.Net;
  12. using System.Security.Principal;
  13. namespace ivf_tl_ServicesImpl.HttpServices
  14. {
  15. public class HttpServiceImplNo
  16. {
  17. public event Action<string, LogEnum> ErrorLogEvent;
  18. public event Action<Exception, string, string, LogEnum> ExceptionLogEvent;
  19. private string token = null;
  20. private HttpClient client = null;
  21. public HttpServiceImplNo(string baseAddress)
  22. {
  23. client = new HttpClient()
  24. {
  25. BaseAddress = new Uri(baseAddress),
  26. Timeout = new TimeSpan(0, 0, 10)// 10是秒数,用于设置超时时长
  27. };
  28. }
  29. private void ExLog(Exception ex, string name)
  30. {
  31. ExceptionLogEvent?.Invoke(ex, $"HttpServiceImpl.{name}",null, LogEnum.RunException);
  32. }
  33. private void ErrorLog(string message, LogEnum logType)
  34. {
  35. ErrorLogEvent?.Invoke($"HttpServiceImpl.{message}", logType);
  36. }
  37. public string GetToken()
  38. {
  39. if(token == null)
  40. {
  41. token = "eyJhbGciOiJSUzI1NiJ9.eyJ1c2VyIjoie1wiYWNjb3VudFwiOlwiYWRtaW5cIixcImFsbG93QWNjZXNzTGlzdFwiOltcIi9hcGkvZ2F0ZXdheS9hdXRoL3Blcm1pc3Npb24vc2NhblBlcm1pc3Npb25cIixcIi9hZGRcIixcIi9tYXJrL2xpc3RcIixcIi9wZXJtaXNzaW9uL2dldFBlcm1pc3Npb25CeUlkXCIsXCIvdXNlci9wYWdlbGlzdFwiLFwiL3Blcm1pc3Npb24vZGVsZXRlUGVybWlzc2lvblwiLFwiL2FsYXJtU3lzU2V0dGluZy9kZWxldGVBbGFybVRlbXBsYXRlQnlJZFwiLFwiL3Blcm1pc3Npb24vYXNzaWduZWRQZXJtaXNzaW9uc1wiLFwiL21hcmsvdXBkYXRlXCIsXCIvcm9sZS9nZXRVc2VyQnlSb2xlSWRcIixcIi9yb2xlL2xpc3RcIixcIi9hbGFybS9nZXRBbGFybU51bVwiLFwiL3Rlc3QvdGVzdFwiLFwiL2FsYXJtU3lzU2V0dGluZy9nZXRBbGFybVR5cGVMaXN0XCIsXCIvYWxhcm1TZXR0aW5nL2RlbGV0ZUFsYXJtUGVyc29ubmVsXCIsXCIvcm9sZS9nZXRQZXJtaXNzaW9uQnlSb2xlSWRcIixcIi9sb2dvdXRcIixcIi9wZXJtaXNzaW9uL3BhZ2VsaXN0XCIsXCIvYWxhcm1TZXR0aW5nL3VwZGF0ZUFsYXJtUGVyc29ubmVsXCIsXCIvYWxhcm1TeXNTZXR0aW5nL3VwZGF0ZUFsYXJtVGVtcGxhdGVcIixcIi9hbGFybVNldHRpbmcvZ2V0VHlwZUFuZFRlbXBsYXRlTGlzdFwiLFwiL3JvbGUvdXBkYXRlXCIsXCIvYWxhcm0vZ2V0QWxhcm1cIixcIi9yb2xlL3BhZ2VsaXN0XCIsXCIvZ2F0ZXdheS9zY2FuUGVybWlzc2lvbi9nZXRJbml0UGVybWlzc2lvbkluZm9cIixcIi9wZXJtaXNzaW9uL2dldFVuYXNzaWduZWRQZXJtaXNzaW9uc1wiLFwiL2FsYXJtU3lzU2V0dGluZy9nZXRBbGFybVRlbXBsYXRlQnlJZFwiLFwiL3Blcm1pc3Npb24vZ2V0QWxsUGVybWlzc2lvblR5cGVcIixcIi9sb2dpblwiLFwiL3JvbGUvZGVsZXRlUm9sZVwiLFwiL2FsYXJtU2V0dGluZy9nZXRBbGFybVBlcnNvbm5lbGxpc3RcIixcIi9wZXJtaXNzaW9uL3NhdmVcIixcIi9tYXJrL2lkXCIsXCIvdXNlci91cGRhdGVcIixcIi9hbGFybVNldHRpbmcvZ2V0VHlwZUFuZFRlbXBsYXRlQnlJZFwiLFwiL3Blcm1pc3Npb24vdXBkYXRlXCIsXCIvdXNlci9zYXZlXCIsXCIvYWxhcm1TeXNTZXR0aW5nL3VwZGF0ZVwiLFwiL3VzZXIvZGVsZXRlVXNlclwiLFwiL2FsYXJtU3lzU2V0dGluZy9nZXRBbGFybVR5cGVQYWdlTGlzdFwiLFwiL2FsYXJtU2V0dGluZy9hZGRBbGFybVBlcnNvbm5lbFwiLFwiL2FsYXJtU2V0dGluZy91cGRhdGVQZXJzb25uZWxQZXJtaXNzaW9uXCIsXCIvY29udHJvbC9zY2FuUGVybWlzc2lvbi9nZXRJbml0UGVybWlzc2lvbkluZm9cIixcIi9hbGFybVN5c1NldHRpbmcvZ2V0QWxhcm1UZW1wbGF0ZVBhZ2VMaXN0XCIsXCIvcGVybWlzc2lvbi9nZXRBbGxBc3NpZ25lZFwiLFwiL3Rlc3QvNy03XCIsXCIvcm9sZS9zYXZlXCIsXCIvYWxhcm1TeXNTZXR0aW5nL3NhdmVBbGFybVRlbXBsYXRlXCIsXCIvdXBkYXRlXCIsXCIvdXNlci9yZXNldFBhc3N3b3JkXCIsXCIvc2NhblBlcm1pc3Npb24vZ2V0SW5pdFBlcm1pc3Npb25JbmZvXCIsXCIvYWxhcm1TeXNTZXR0aW5nL2RlbGV0ZUFsYXJtVHlwZVwiLFwiL3VzZXIvdXBkYXRlUGFzc3dvcmRcIixcIi9yb2xlL2Fzc2lnbkF1dGhvcml0eVwiLFwiL2FsYXJtU3lzU2V0dGluZy9zYXZlXCJdLFwidXNlcm5hbWVcIjpcImFkbWluXCJ9IiwianRpIjoiTVdaak9XUXpPRGd0WVRKa09DMDBaamszTFRsak1tVXRZakE1TmpVNVptWXpNRGszIn0.WsjkouFpFfAGzYQ07vPbZwiOU462NprPe_5ITpMHnCpjqJAfcUkiKBddgm86XvjGESmcaZKE_hWKaMPIIIRxngOtJ-wlV1cGs9T1jjgWHMj9BfD0zbmKCYvTo7ZtQlkNFoZ5Ac_vj1BT2f7RVFuwENZeVakdfNcCykPXl1AaiVnoqqj_6tX6neJpDQxz1tKgqkXf3X-QBhRN8s_uY0UGSTgzK4gaKhn-Mk4lu18liBwkQ4RUSmJE8uhP9k4yd1z8RY_zm2eed5HgnppZA_zpz2ost1mblaDLf924cgKp-NGPctbTkKQpghC894sidjhyvY85oSzOq5yV1fdMVJSPuQ";
  42. }
  43. return token;
  44. }
  45. public string callWebService(string url)
  46. {
  47. string name = "callWebService";
  48. try
  49. {
  50. if (string.IsNullOrEmpty(GetToken())) return null;
  51. if (client.DefaultRequestHeaders.Contains("token"))
  52. {
  53. client.DefaultRequestHeaders.Remove("token");
  54. }
  55. client.DefaultRequestHeaders.Add("token", token);
  56. //访问记录
  57. ErrorLogEvent?.Invoke($"[url:{url}]", LogEnum.HttpClient);
  58. HttpContent httpContent = new StringContent("");
  59. httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
  60. httpContent.Headers.ContentType.CharSet = "utf-8";
  61. HttpResponseMessage responseMessage = client.PostAsync(url, httpContent).Result;
  62. string rsString = null;
  63. if (responseMessage.StatusCode == System.Net.HttpStatusCode.OK)
  64. {
  65. rsString = responseMessage.Content.ReadAsStringAsync().Result;
  66. //返回记录
  67. ErrorLogEvent?.Invoke($"返回结果:{rsString}", LogEnum.HttpClient);
  68. }
  69. else
  70. {
  71. ErrorLog($"访问服务器失败:[url:{url}]", LogEnum.RunError);
  72. }
  73. return rsString;
  74. }
  75. catch (Exception ex)
  76. {
  77. ExLog(ex, $"callWebService:{url}");
  78. return null;
  79. }
  80. }
  81. public string callWebService(string url, string body)
  82. {
  83. string name = "callWebService";
  84. try
  85. {
  86. if (string.IsNullOrEmpty(GetToken())) return null;
  87. if (client.DefaultRequestHeaders.Contains("token"))
  88. {
  89. client.DefaultRequestHeaders.Remove("token");
  90. }
  91. client.DefaultRequestHeaders.Add("token", token);
  92. //访问记录
  93. ErrorLogEvent?.Invoke($"[url:{url}][参数:{body}]", LogEnum.HttpClient);
  94. HttpContent httpContent = new StringContent(body);
  95. httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
  96. httpContent.Headers.ContentType.CharSet = "utf-8";
  97. HttpResponseMessage responseMessage = client.PostAsync(url, httpContent).Result;
  98. string rsString = null;
  99. if (responseMessage.StatusCode == System.Net.HttpStatusCode.OK)
  100. {
  101. rsString = responseMessage.Content.ReadAsStringAsync().Result;
  102. //返回记录
  103. ErrorLogEvent?.Invoke($"返回结果:{rsString}", LogEnum.HttpClient);
  104. }
  105. else
  106. {
  107. ErrorLog($"访问服务器失败:[url:{url}][参数:{body}]", LogEnum.RunError);
  108. }
  109. return rsString;
  110. }
  111. catch (Exception ex)
  112. {
  113. ExLog(ex, $"callWebService:[url:{url}][body:{body}]");
  114. return null;
  115. }
  116. }
  117. public string callWebService(string url, Dictionary<string, string> body)
  118. {
  119. string name = "callWebService";
  120. try
  121. {
  122. if (string.IsNullOrEmpty(GetToken())) return null;
  123. if (client.DefaultRequestHeaders.Contains("token"))
  124. {
  125. client.DefaultRequestHeaders.Remove("token");
  126. }
  127. client.DefaultRequestHeaders.Add("token", token);
  128. //访问记录
  129. ErrorLogEvent?.Invoke($"[url:{url}][参数:{JsonConvert.SerializeObject(body)}]", LogEnum.HttpClient);
  130. var responseMessage = client.PostAsync(url, new FormUrlEncodedContent(body)).Result;
  131. string rsString = null;
  132. if (responseMessage.StatusCode == System.Net.HttpStatusCode.OK)
  133. {
  134. rsString = responseMessage.Content.ReadAsStringAsync().Result;
  135. //返回记录
  136. ErrorLogEvent?.Invoke($"返回结果:{rsString}", LogEnum.HttpClient);
  137. }
  138. else
  139. {
  140. ErrorLog($"访问服务器失败:[url:{url}][body:{JsonConvert.SerializeObject(body)}]", LogEnum.RunError);
  141. }
  142. return rsString;
  143. }
  144. catch (Exception ex)
  145. {
  146. ExLog(ex, $"callWebService:[url:{url}][body:{JsonConvert.SerializeObject(body)}]");
  147. return null;
  148. }
  149. }
  150. public string callWebServiceNoToken(string url, string body)
  151. {
  152. string name = "callWebService";
  153. try
  154. {
  155. if (client.DefaultRequestHeaders.Contains("token"))
  156. {
  157. client.DefaultRequestHeaders.Remove("token");
  158. }
  159. //访问记录
  160. ErrorLogEvent?.Invoke($"[url:{url}][参数:{body}]", LogEnum.HttpClient);
  161. HttpContent httpContent = new StringContent(body);
  162. httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
  163. httpContent.Headers.ContentType.CharSet = "utf-8";
  164. HttpResponseMessage responseMessage = client.PostAsync(url, httpContent).Result;
  165. string rsString = null;
  166. if (responseMessage.StatusCode == System.Net.HttpStatusCode.OK)
  167. {
  168. rsString = responseMessage.Content.ReadAsStringAsync().Result;
  169. //返回记录
  170. ErrorLogEvent?.Invoke($"返回结果:{rsString}", LogEnum.HttpClient);
  171. }
  172. else
  173. {
  174. ErrorLog($"访问服务器失败:[url:{url}][body:{body}]", LogEnum.RunError);
  175. }
  176. return rsString;
  177. }
  178. catch (Exception ex)
  179. {
  180. ExLog(ex, $"callWebService:[url:{url}][body:{body}]");
  181. return null;
  182. }
  183. }
  184. //public string GetMethod(string url, string Token)
  185. //{
  186. // try
  187. // {
  188. // string rsString = null;
  189. // using (HttpClient client = new HttpClient())
  190. // {
  191. // try
  192. // {
  193. // ErrorLogEvent?.Invoke($"[url:{url}]", LogEnum.HttpClient);
  194. // client.Timeout = new TimeSpan(0, 0, 10); // 10是秒数,用于设置超时时长
  195. // client.DefaultRequestHeaders.Add("token", Token);
  196. // //client.DefaultRequestHeaders.Connection.Add("keep-alive");
  197. // HttpResponseMessage res = client.GetAsync(url).GetAwaiter().GetResult();
  198. // if (res.StatusCode == System.Net.HttpStatusCode.OK)
  199. // {
  200. // rsString = res.Content.ReadAsStringAsync().Result;
  201. // ErrorLogEvent?.Invoke($"返回结果:{rsString}", LogEnum.HttpClient);
  202. // }
  203. // else
  204. // {
  205. // ErrorLogEvent?.Invoke($"GetMethod访问服务器连接失败{res.StatusCode}:{url}", LogEnum.RunError);
  206. // }
  207. // }
  208. // catch (Exception ex)
  209. // {
  210. // ExceptionLogEvent?.Invoke(ex, "GetMethod调用using", null, LogEnum.RunException);
  211. // }
  212. // finally
  213. // {
  214. // client.Dispose();
  215. // }
  216. // }
  217. // return rsString;
  218. // }
  219. // catch (Exception ex1)
  220. // {
  221. // ExceptionLogEvent?.Invoke(ex1, "GetMethod调用", null, LogEnum.RunException);
  222. // return null;
  223. // }
  224. //}
  225. //public string PostMethod(string url, string body, string Token)
  226. //{
  227. // try
  228. // {
  229. // string rsString = null;
  230. // using (HttpClient client = new HttpClient())
  231. // {
  232. // try
  233. // {
  234. // ErrorLogEvent?.Invoke($"[url:{url}][body:{body}]", LogEnum.HttpClient);
  235. // HttpContent content = new StringContent(body);
  236. // content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
  237. // client.Timeout = new TimeSpan(0, 0, 10); // 10是秒数,用于设置超时时长
  238. // client.DefaultRequestHeaders.Add("token", Token);
  239. // //client.DefaultRequestHeaders.Connection.Add("keep-alive");
  240. // HttpResponseMessage res = client.PostAsync(url, content).GetAwaiter().GetResult();
  241. // if (res.StatusCode == System.Net.HttpStatusCode.OK)
  242. // {
  243. // rsString = res.Content.ReadAsStringAsync().Result;
  244. // ErrorLogEvent?.Invoke($"返回结果:{rsString}", LogEnum.HttpClient);
  245. // }
  246. // else
  247. // {
  248. // ErrorLogEvent?.Invoke($"PostMethod访问服务器连接失败{res.StatusCode}:{body}", LogEnum.RunError);
  249. // }
  250. // }
  251. // catch (Exception ex)
  252. // {
  253. // ExceptionLogEvent?.Invoke(ex, "PostMethod调用using", null, LogEnum.RunException);
  254. // }
  255. // finally
  256. // {
  257. // client.Dispose();
  258. // }
  259. // }
  260. // return rsString;
  261. // }
  262. // catch (Exception ex1)
  263. // {
  264. // ExceptionLogEvent?.Invoke(ex1, "PostMethod调用", null, LogEnum.RunException);
  265. // return null;
  266. // }
  267. //}
  268. //public string PostMethod(string url, Dictionary<string, string> dic, string Token)
  269. //{
  270. // try
  271. // {
  272. // string rsString = null;
  273. // using (HttpClient client = new HttpClient())
  274. // {
  275. // ErrorLogEvent?.Invoke($"[url:{url}][dic:{JsonConvert.SerializeObject(dic)}]", LogEnum.HttpClient);
  276. // client.Timeout = new TimeSpan(0, 0, 10); // 10是秒数,用于设置超时时长
  277. // client.DefaultRequestHeaders.Add("token", Token);
  278. // var response = client.PostAsync(url, new FormUrlEncodedContent(dic)).Result;
  279. // if (response.StatusCode == System.Net.HttpStatusCode.OK)
  280. // {
  281. // rsString = response.Content.ReadAsStringAsync().Result;
  282. // ErrorLogEvent?.Invoke($"返回结果:{rsString}", LogEnum.HttpClient);
  283. // }
  284. // else
  285. // {
  286. // ErrorLogEvent?.Invoke($"PostMethod访问服务器连接失败{response.StatusCode}:{JsonConvert.SerializeObject(dic)}", LogEnum.RunError);
  287. // }
  288. // }
  289. // return rsString;
  290. // }
  291. // catch (Exception ex)
  292. // {
  293. // ExceptionLogEvent?.Invoke(ex, "PostMethod调用", null, LogEnum.RunException);
  294. // return null;
  295. // }
  296. //}
  297. //public string PostMethod1(string url, string body, string Token)
  298. //{
  299. // try
  300. // {
  301. // string returnString;
  302. // HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
  303. // request.Method = "POST";
  304. // request.ContentType = "application/json; charset=UTF-8";
  305. // request.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + Token);
  306. // if (string.IsNullOrEmpty(body))
  307. // {
  308. // request.ContentLength = 0;
  309. // }
  310. // else
  311. // {
  312. // byte[] data = Encoding.UTF8.GetBytes(body);
  313. // request.ContentLength = data.Length;
  314. // using (Stream reqStream = request.GetRequestStream())
  315. // {
  316. // reqStream.Write(data, 0, data.Length);
  317. // reqStream.Close();
  318. // }
  319. // }
  320. // request.Timeout = 1000 * 5;
  321. // HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  322. // if (response.StatusCode != System.Net.HttpStatusCode.OK)
  323. // {
  324. // ErrorLogEvent?.Invoke($"访问服务器连接失败{response.StatusCode.ToString()}:{body}", LogEnum.RunError);
  325. // return null;
  326. // }
  327. // string encoding = response.ContentEncoding;
  328. // if (encoding == null || encoding.Length < 1)
  329. // {
  330. // encoding = "UTF-8";
  331. // }
  332. // using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding)))
  333. // {
  334. // returnString = reader.ReadToEnd();
  335. // response.Close();
  336. // }
  337. // if (string.IsNullOrEmpty(returnString))
  338. // {
  339. // return null;
  340. // }
  341. // return returnString;
  342. // }
  343. // catch (Exception ex)
  344. // {
  345. // ExceptionLogEvent?.Invoke(ex, "Post调用", null, LogEnum.RunException);
  346. // return null;
  347. // }
  348. //}
  349. }
  350. }