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 --- 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Http/HttpHelpers.cs | 198 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 198 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Http/HttpHelpers.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Http/HttpHelpers.cs" new file mode 100644 index 0000000..caabe50 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Http/HttpHelpers.cs" @@ -0,0 +1,198 @@ +锘� +using Newtonsoft.Json; +using System.Net; +using System.Text; +using WIDESEA_Common.Log; + +namespace WIDESEA_Comm.Http +{ + public class HttpHelpers + { + private const int Timeout = 10 * 1000; + + /// <summary> + /// post璇锋眰 + /// </summary> + /// <param name="url"></param> + /// <param name="parm">鍙傛暟</param> + /// <param name="rquestName">鎺ュ彛鍚嶇О,鐢ㄤ簬鏃ュ織鍒嗙被</param> + /// <returns></returns> + public static string Post(string url, object parm, string rquestName = "") + { + HttpWebResponse response = null; + StreamReader resultReader = null; + string responseContent = string.Empty; + try + { + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + request.Timeout = Timeout; + 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()); + } + + //WriteLog.Write_Log("System/API璇锋眰", rquestName, "璇锋眰鎴愬姛", new { 璇锋眰鎶ユ枃 = parm, 鎺ユ敹鎶ユ枃 = responseContent }); + return responseContent; + } + catch (Exception ex) + { + WriteLog.Write_Log("API", rquestName, "璇锋眰寮傚父", new { 璇锋眰鎶ユ枃 = parm, 鎺ユ敹鎶ユ枃 = responseContent, 閿欒 = ex.Message }); + throw ex; + } + } + + /// <summary> + /// post璇锋眰 + /// </summary> + /// <param name="url"></param> + /// <param name="parm">鍙傛暟</param> + /// <param name="rquestName">鎺ュ彛鍚嶇О,鐢ㄤ簬鏃ュ織鍒嗙被</param> + /// <returns></returns> + 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 = Timeout; + 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()); + } + + //WriteLog.Write_Log("System/API璇锋眰", rquestName, "璇锋眰鎴愬姛", new { 璇锋眰鎶ユ枃 = parm, 鎺ユ敹鎶ユ枃 = responseContent }); + return JsonConvert.DeserializeObject<T>(responseContent); + } + catch (Exception ex) + { + WriteLog.Write_Log("API", rquestName, "璇锋眰寮傚父", new { 璇锋眰鎶ユ枃 = parm, 鎺ユ敹鎶ユ枃 = responseContent, 閿欒 = ex.Message }); + throw ex; + } + } + + + /// <summary> + /// get璇锋眰 + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="url"></param> + /// <param name="parm">璇锋眰鍙傛暟锛屾坊鍔犲湪url</param> + /// <param name="rquestName"></param> + /// <returns></returns> + public static T Get<T>(string url, object parm = null, string rquestName = "") where T : class + { + HttpWebResponse response = null; + StreamReader resultReader = null; + string responseContent = string.Empty; + try + { + if (parm != null) + { + var datas = JsonConvert.DeserializeObject<Dictionary<string, string>>(JsonConvert.SerializeObject(parm)); + var keyList = datas.Keys; + int index = 0; + foreach (var key in datas.Keys) + { + if (index == 0) + { + url += $"?{key}={datas[key]}"; + } + else + { + url += $"&{key}={datas[key]}"; + } + index++; + } + } + HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); + request.Timeout = Timeout; + request.Method = "GET"; + request.ContentType = "application/json; charset=UTF-8"; + + 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()); + } + + WriteLog.Write_Log("API", rquestName, "璇锋眰鎴愬姛", new { 璇锋眰鎶ユ枃 = parm, 鎺ユ敹鎶ユ枃 = responseContent }); + return JsonConvert.DeserializeObject<T>(responseContent); + } + catch (Exception ex) + { + WriteLog.Write_Log("API", rquestName, "璇锋眰寮傚父", new { 璇锋眰鎶ユ枃 = parm, 鎺ユ敹鎶ユ枃 = responseContent, 閿欒 = ex.Message }); + throw ex; + } + } + + } +} -- Gitblit v1.9.3