U8对接请求优化
This commit is contained in:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user