|  |  | 
 |  |  | { | 
 |  |  |     public class HttpHelper | 
 |  |  |     { | 
 |  |  |         public static async Task<string> GetAsync(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null) | 
 |  |  |         public static async Task<string> GetAsync(string serviceAddress, Dictionary<string, string>? headers = null) | 
 |  |  |         { | 
 |  |  |             string result = string.Empty; | 
 |  |  |             DateTime beginDate = DateTime.Now; | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 string result = string.Empty; | 
 |  |  |                 using HttpClient httpClient = new HttpClient(); | 
 |  |  |                 httpClient.Timeout = new TimeSpan(0, 0, 60); | 
 |  |  |  | 
 |  |  |                 foreach (var header in headers) | 
 |  |  |                     httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                  | 
 |  |  |                 if (headers != null) | 
 |  |  |                 { | 
 |  |  |                     foreach (var header in headers) | 
 |  |  |                         httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync(); | 
 |  |  |                 return result; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 Console.WriteLine(e.Message); | 
 |  |  |                 throw new Exception(e.Message); | 
 |  |  |             } | 
 |  |  |             return null; | 
 |  |  |             finally | 
 |  |  |             { | 
 |  |  |                 Logger.Add(serviceAddress, "", result, beginDate); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public static async Task<string> PostAsync(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null) | 
 |  |  |         public static async Task<string?> PostAsync(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null) | 
 |  |  |         { | 
 |  |  |             string result = string.Empty; | 
 |  |  |             DateTime beginDate = DateTime.Now; | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 string result = string.Empty; | 
 |  |  |                 using (HttpContent httpContent = new StringContent(requestJson)) | 
 |  |  |                 { | 
 |  |  |                     httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); | 
 |  |  |                     using HttpClient httpClient = new HttpClient(); | 
 |  |  |                     httpClient.Timeout = new TimeSpan(0, 0, 60); | 
 |  |  |  | 
 |  |  |                     foreach (var header in headers) | 
 |  |  |                         httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                     if (headers != null) | 
 |  |  |                     { | 
 |  |  |                         foreach (var header in headers) | 
 |  |  |                             httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync(); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 Console.WriteLine(e.Message); | 
 |  |  |                 throw new Exception(e.Message); | 
 |  |  |             } | 
 |  |  |             return null; | 
 |  |  |             finally | 
 |  |  |             { | 
 |  |  |                 Logger.Add(serviceAddress, requestJson, result, beginDate); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public static string Get(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null) | 
 |  |  |         { | 
 |  |  |             string result = string.Empty; | 
 |  |  |             DateTime beginDate = DateTime.Now; | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 string result = string.Empty; | 
 |  |  |                 using HttpClient httpClient = new HttpClient(); | 
 |  |  |                 httpClient.Timeout = new TimeSpan(0, 0, 60); | 
 |  |  |  | 
 |  |  |                 foreach (var header in headers) | 
 |  |  |                     httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                 if (headers != null) | 
 |  |  |                 { | 
 |  |  |                     foreach (var header in headers) | 
 |  |  |                         httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 result = httpClient.GetStringAsync(serviceAddress).Result; | 
 |  |  |                 return result; | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 Console.WriteLine(e.Message); | 
 |  |  |                 throw new Exception(e.Message); | 
 |  |  |             } | 
 |  |  |             return null; | 
 |  |  |             finally | 
 |  |  |             { | 
 |  |  |                 Logger.Add(serviceAddress, "", result, beginDate); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public static string Post(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null) | 
 |  |  |         public static string Post(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null) | 
 |  |  |         { | 
 |  |  |             string result = string.Empty; | 
 |  |  |             DateTime beginDate = DateTime.Now; | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 string result = string.Empty; | 
 |  |  |                 using (HttpContent httpContent = new StringContent(requestJson)) | 
 |  |  |                 { | 
 |  |  |                     httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); | 
 |  |  |                     using HttpClient httpClient = new HttpClient(); | 
 |  |  |                     httpClient.Timeout = new TimeSpan(0, 0, 60); | 
 |  |  |  | 
 |  |  |                     foreach (var header in headers) | 
 |  |  |                         httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                     if (headers != null) | 
 |  |  |                     { | 
 |  |  |                         foreach (var header in headers) | 
 |  |  |                             httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     result = httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync().Result; | 
 |  |  |                 } | 
 |  |  | 
 |  |  |             } | 
 |  |  |             catch (Exception e) | 
 |  |  |             { | 
 |  |  |                 Console.WriteLine(e.Message); | 
 |  |  |                 throw new Exception(e.Message); | 
 |  |  |             } | 
 |  |  |             return null; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public static T Post<T>(string url, object parm, string rquestName = "") where T : class | 
 |  |  |         { | 
 |  |  |             HttpWebResponse response = null; | 
 |  |  |             StreamReader resultReader = null; | 
 |  |  |             string responseContent = string.Empty; | 
 |  |  |             try | 
 |  |  |             finally | 
 |  |  |             { | 
 |  |  |                 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); | 
 |  |  |                 request.Timeout = 10 * 1000; | 
 |  |  |                 request.Method = "POST"; | 
 |  |  |                 request.ContentType = "application/json; charset=UTF-8"; | 
 |  |  |                 parm = parm ?? ""; | 
 |  |  |                 byte[] data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(parm)); | 
 |  |  |                 request.ContentLength = data.Length; | 
 |  |  |                 using (Stream newStream = request.GetRequestStream()) | 
 |  |  |                 { | 
 |  |  |                     newStream.Write(data, 0, data.Length); | 
 |  |  |                 }; | 
 |  |  |  | 
 |  |  |                 response = (HttpWebResponse)request.GetResponse(); | 
 |  |  |                 Stream webStream = response.GetResponseStream(); | 
 |  |  |                 if (webStream == null) | 
 |  |  |                 { | 
 |  |  |                     throw new Exception("Network error"); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 int statsCode = (int)response.StatusCode; | 
 |  |  |                 resultReader = new StreamReader(webStream, Encoding.UTF8); | 
 |  |  |                 responseContent = resultReader.ReadToEnd(); | 
 |  |  |  | 
 |  |  |                 if (response != null) | 
 |  |  |                     response.Close(); | 
 |  |  |                 if (resultReader != null) | 
 |  |  |                     resultReader.Close(); | 
 |  |  |  | 
 |  |  |                 if (statsCode != 200) | 
 |  |  |                 { | 
 |  |  |                     throw new Exception("å¼å¸¸ï¼ååºç ï¼" + statsCode.ToString()); | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                 Logger.Write_Log("System/API请æ±", rquestName, "è¯·æ±æå", new { è¯·æ±æ¥æ = parm, æ¥æ¶æ¥æ = responseContent }); | 
 |  |  |                 return JsonConvert.DeserializeObject<T>(responseContent); | 
 |  |  |             } | 
 |  |  |             catch (Exception ex) | 
 |  |  |             { | 
 |  |  |                 Logger.Write_Log("System/API请æ±", rquestName, "请æ±å¼å¸¸", new { è¯·æ±æ¥æ = parm, æ¥æ¶æ¥æ = responseContent, é误 = ex.Message }); | 
 |  |  |                 throw ex; | 
 |  |  |                 Logger.Add(serviceAddress, requestJson, result, beginDate); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } |