From d58196721475e968769d708d9c14f60dd8d5671f Mon Sep 17 00:00:00 2001
From: HuBingJie <3146306518@qq.com>
Date: 星期四, 13 十一月 2025 22:20:14 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs |  121 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 120 insertions(+), 1 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs"
index c020a67..96aa66e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs"
@@ -1,4 +1,4 @@
-锘縰sing Microsoft.Extensions.Logging;
+using Microsoft.Extensions.Logging;
 using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
@@ -132,5 +132,124 @@
                 Logger.Add(serviceAddress, requestJson, result, beginDate);
             }
         }
+
+        /// <summary>
+        /// POST璇锋眰锛堝紓姝ョ増鏈級- 瑙e喅405闂
+        /// </summary>
+        /// <param name="serviceAddress">鏈嶅姟鍦板潃</param>
+        /// <param name="requestJson">璇锋眰JSON</param>
+        /// <param name="contentType">鍐呭绫诲瀷</param>
+        /// <param name="headers">璇锋眰澶�</param>
+        /// <returns>鍝嶅簲缁撴灉</returns>
+        /// <summary>
+        /// POST璇锋眰锛堝悓姝ョ増鏈紝鍏煎鍘熸湁浠g爜锛�
+        /// </summary>
+        // 濡傛灉涓婇潰鐨勬柟娉曡繕鏈夐棶棰橈紝浣跨敤杩欎釜绠�鍖栫増鏈�
+        public static string PostSync(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null)
+        {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
+            try
+            {
+                using (var httpContent = new StringContent(requestJson, Encoding.UTF8, contentType))
+                using (var httpClient = new HttpClient())
+                {
+                    httpClient.Timeout = TimeSpan.FromSeconds(600);
+
+                    // 璁剧疆榛樿璇锋眰澶� - 浣跨敤绠�鍗曠殑 User-Agent
+                    httpClient.DefaultRequestHeaders.Add("Accept", "*/*");
+                    httpClient.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");
+                    httpClient.DefaultRequestHeaders.Add("Connection", "keep-alive");
+                    httpClient.DefaultRequestHeaders.Add("User-Agent", "WMS-Client/1.0"); // 绠�鍗曠殑 User-Agent
+
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
+
+                    var response = httpClient.PostAsync(serviceAddress, httpContent).Result;
+
+                    Console.WriteLine($"HTTP鐘舵�佺爜: {(int)response.StatusCode} - {response.StatusCode}");
+
+                    if (!response.IsSuccessStatusCode)
+                    {
+                        throw new HttpRequestException($"HTTP璇锋眰澶辫触: {(int)response.StatusCode} - {response.StatusCode}");
+                    }
+
+                    result = response.Content.ReadAsStringAsync().Result;
+                    return result;
+                }
+            }
+            catch (Exception e)
+            {
+                throw new Exception($"POST璇锋眰澶辫触: {e.Message}");
+            }
+            finally
+            {
+                Logger.Add(serviceAddress, requestJson, result, beginDate);
+            }
+        }
+
+
+        /// <summary>
+        /// GET璇锋眰
+        /// </summary>
+        /// <param name="serviceAddress">鏈嶅姟鍦板潃</param>
+        /// <param name="parameters">璇锋眰鍙傛暟</param>
+        /// <param name="headers">璇锋眰澶�</param>
+        /// <returns>鍝嶅簲缁撴灉</returns>
+        public static string GetRequest(string serviceAddress, Dictionary<string, string>? parameters = null, Dictionary<string, string>? headers = null)
+        {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
+            try
+            {
+                using (var httpClient = new HttpClient())
+                {
+                    httpClient.Timeout = TimeSpan.FromSeconds(60);
+
+                    // 璁剧疆璇锋眰澶�
+                    httpClient.DefaultRequestHeaders.Add("Accept", "*/*");
+                    httpClient.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate");
+                    httpClient.DefaultRequestHeaders.Add("Connection", "keep-alive");
+                    httpClient.DefaultRequestHeaders.Add("User-Agent", "WMS-Client/1.0");
+
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
+
+                    // 鏋勫缓甯﹀弬鏁扮殑 URL
+                    string url = serviceAddress;
+                    if (parameters != null && parameters.Count > 0)
+                    {
+                        var queryParams = string.Join("&", parameters.Select(p => $"{Uri.EscapeDataString(p.Key)}={Uri.EscapeDataString(p.Value)}"));
+                        url += (url.Contains("?") ? "&" : "?") + queryParams;
+                    }
+
+                    var response = httpClient.GetAsync(url).Result;
+
+                    Console.WriteLine($"GET 鐘舵�佺爜: {(int)response.StatusCode} - {response.StatusCode}");
+
+                    if (!response.IsSuccessStatusCode)
+                    {
+                        throw new HttpRequestException($"GET 璇锋眰澶辫触: {(int)response.StatusCode} - {response.StatusCode}");
+                    }
+
+                    result = response.Content.ReadAsStringAsync().Result;
+                    return result;
+                }
+            }
+            catch (Exception e)
+            {
+                throw new Exception($"GET 璇锋眰澶辫触: {e.Message}");
+            }
+            finally
+            {
+                Logger.Add(serviceAddress, parameters != null ? JsonConvert.SerializeObject(parameters) : "No Parameters", result, beginDate);
+            }
+        }
     }
 }

--
Gitblit v1.9.3