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