| using Microsoft.Extensions.Logging; | 
| using Newtonsoft.Json; | 
| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Net; | 
| using System.Net.Http.Headers; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEA_Core.LogHelper; | 
|   | 
| namespace WIDESEA_Core.Helper | 
| { | 
|     public class HttpHelper | 
|     { | 
|         public static async Task<string> GetAsync(string serviceAddress, Dictionary<string, string>? headers = null) | 
|         { | 
|             string result = string.Empty; | 
|             DateTime beginDate = DateTime.Now; | 
|             try | 
|             { | 
|                 using HttpClient httpClient = new HttpClient(); | 
|                 httpClient.Timeout = new TimeSpan(0, 0, 60); | 
|                  | 
|                 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) | 
|             { | 
|                 throw new Exception(e.Message); | 
|             } | 
|             finally | 
|             { | 
|                 Logger.Add(serviceAddress, "", result, beginDate); | 
|             } | 
|         } | 
|   | 
|         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 | 
|             { | 
|                 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); | 
|   | 
|                     if (headers != null) | 
|                     { | 
|                         foreach (var header in headers) | 
|                             httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
|                     } | 
|   | 
|                     result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync(); | 
|                 } | 
|                 return result; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 throw new Exception(e.Message); | 
|             } | 
|             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 | 
|             { | 
|                 using HttpClient httpClient = new HttpClient(); | 
|                 httpClient.Timeout = new TimeSpan(0, 0, 60); | 
|   | 
|                 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) | 
|             { | 
|                 throw new Exception(e.Message); | 
|             } | 
|             finally | 
|             { | 
|                 Logger.Add(serviceAddress, "", result, beginDate); | 
|             } | 
|         } | 
|   | 
|         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 | 
|             { | 
|                 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); | 
|   | 
|                     if (headers != null) | 
|                     { | 
|                         foreach (var header in headers) | 
|                             httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); | 
|                     } | 
|   | 
|                     result = httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync().Result; | 
|                 } | 
|                 return result; | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 throw new Exception(e.Message); | 
|             } | 
|             finally | 
|             { | 
|                 Logger.Add(serviceAddress, requestJson, result, beginDate); | 
|             } | 
|         } | 
|     } | 
| } |