From c020f31a67fc5aa5644511bddff075f7ecc85234 Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期二, 27 五月 2025 15:35:27 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/ZhongHeLiTiKu --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 158 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs" new file mode 100644 index 0000000..da9e300 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs" @@ -0,0 +1,158 @@ +锘縰sing 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, string contentType = "application/json", Dictionary<string, string>? headers = null) + { + 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); + + result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync(); + return result; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + return null; + } + + public static async Task<string> PostAsync(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null) + { + 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); + + result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync(); + } + return result; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + return null; + } + + public static string Get(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null) + { + 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); + + result = httpClient.GetStringAsync(serviceAddress).Result; + return result; + } + catch (Exception e) + { + Console.WriteLine(e.Message); + } + return null; + } + + public static string Post(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null) + { + 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); + + result = httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync().Result; + } + return result; + } + catch (Exception e) + { + Console.WriteLine(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 + { + 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; + } + } + } +} -- Gitblit v1.9.3