U8对接请求优化

This commit is contained in:
2025-07-17 15:28:38 +08:00
parent 1234d04b04
commit 917167e2db

View File

@@ -8,6 +8,7 @@ using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using U8Server.Util;
using ZR.Model.MES.wms;
@@ -63,17 +64,14 @@ namespace ZR.Service.mes.wms_u8
}
// 2. 构建URL和请求数据
string url = BuildUrl(urlBase, action);
string url = BuildUrl(urlBase, action, models);
string requestData = JsonConvert.SerializeObject(models);
_logger.Debug($"{operation}请求数据: {requestData}");
// 3. 构建headers含签名
var headers = BuildHeaders(requestData);
try
{
_logger.Trace($"发送{operation}同步HTTP请求 - URL: {url}");
object result = HttpHelper.HttpPost(url, requestData, "application/json", 5, headers);
object result = HttpHelper.HttpPost(url, requestData, "application/json", 5, null);
// 4. 处理响应同步方法假设HttpPost返回已反序列化对象需根据实际HttpHelper调整
return ProcessSyncResponse(result, operation, url);
@@ -100,17 +98,14 @@ namespace ZR.Service.mes.wms_u8
}
// 2. 构建URL和请求数据
string url = BuildUrl(urlBase, action);
string url = BuildUrl(urlBase, action, models);
string requestData = JsonConvert.SerializeObject(models);
_logger.Debug($"{operation}请求数据: {requestData}");
// 3. 构建headers含签名
var headers = BuildHeaders(requestData);
try
{
_logger.Trace($"发送{operation}异步HTTP请求 - URL: {url}");
string resultJson = await HttpHelper.HttpPostAsync(url, requestData, "application/json", 5, headers);
string resultJson = await HttpHelper.HttpPostAsync(url, requestData, "application/json", 5, null);
// 4. 处理响应先校验JSON格式再反序列化
return await ProcessAsyncResponse(resultJson, operation, url);
@@ -124,16 +119,30 @@ namespace ZR.Service.mes.wms_u8
#region
/// <summary>
/// 构建URL避免双斜杠问题
/// 构建URL避免双斜杠问题,并添加查询字符串参数
/// </summary>
private string BuildUrl(string urlBase, string action)
private string BuildUrl(string urlBase, string action, List<ERP_WMS_interactiveModelQuery> models)
{
// 移除urlBase结尾的斜杠再拼接路径
return $"{urlBase.TrimEnd('/')}/wms/mes/{action}";
string baseUrl = $"{urlBase.TrimEnd('/')}/wms/mes/{action}";
// 构建请求参数
string requestData = JsonConvert.SerializeObject(models);
var headers = BuildHeaders(requestData);
// 构建查询字符串
var queryString = string.Join("&", headers.Select(kv => $"{WebUtility.UrlEncode(kv.Key)}={WebUtility.UrlEncode(kv.Value)}"));
if (!string.IsNullOrEmpty(queryString))
{
baseUrl += $"?{queryString}";
}
return baseUrl;
}
/// <summary>
/// 构建请求头(含签名生成
/// 构建请求参数(原构建请求头的逻辑
/// </summary>
private Dictionary<string, string> BuildHeaders(string requestData)
{