2025-08-24 08:40:49 +08:00
|
|
|
|
using System.Net;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using Microsoft.IdentityModel.Tokens;
|
2025-01-08 15:43:26 +08:00
|
|
|
|
using WmsMobileServe.Annotation;
|
|
|
|
|
|
using WmsMobileServe.Utils.HttpUtils;
|
|
|
|
|
|
using WmsMobileServe.Utils.HttpUtils.Entity;
|
|
|
|
|
|
|
|
|
|
|
|
namespace WmsMobileServe.ApiClient.Mes;
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 访问 Mes 的 api 客户端
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
[Component]
|
|
|
|
|
|
public class MesApiClient : WebApiClient
|
|
|
|
|
|
{
|
|
|
|
|
|
public MesApiClient()
|
|
|
|
|
|
{
|
2025-01-15 07:53:20 +08:00
|
|
|
|
SetBaseUrl("http://10.50.220.1:8099");
|
2025-01-08 15:43:26 +08:00
|
|
|
|
SetResponseAction(ApiClientResponseEvent.ApiResponse);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 获取箱子信息
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
/// <param name="boxNo"></param>
|
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
|
public ApiResponseInfo GetOutBoxInfo(string boxNo)
|
|
|
|
|
|
{
|
|
|
|
|
|
Dictionary<string, object> request = [];
|
|
|
|
|
|
request.Add("pSN", boxNo);
|
|
|
|
|
|
return HttpGet(request, "/Camstar/PackStock.asmx/getOutBoxInf");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-08-24 08:40:49 +08:00
|
|
|
|
private readonly HttpClient _httpClient;
|
|
|
|
|
|
private readonly string _baseUrl;
|
|
|
|
|
|
|
|
|
|
|
|
public MesApiClient(string baseUrl)
|
|
|
|
|
|
{
|
|
|
|
|
|
_baseUrl = baseUrl.TrimEnd('/');
|
|
|
|
|
|
_httpClient = new HttpClient
|
|
|
|
|
|
{
|
|
|
|
|
|
Timeout = TimeSpan.FromSeconds(30)
|
|
|
|
|
|
};
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public async Task<ApiResponseInfo> HttpGetAsync(Dictionary<string, object> parameters, string apiPath)
|
|
|
|
|
|
{
|
|
|
|
|
|
var responseInfo = new ApiResponseInfo
|
|
|
|
|
|
{
|
|
|
|
|
|
RequestTime = DateTime.Now,
|
|
|
|
|
|
RequestMethod = "GET"
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
|
{
|
|
|
|
|
|
// 构建查询字符串
|
|
|
|
|
|
var queryString = new StringBuilder();
|
|
|
|
|
|
foreach (var param in parameters)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (queryString.Length > 0)
|
|
|
|
|
|
queryString.Append('&');
|
|
|
|
|
|
|
|
|
|
|
|
queryString.Append($"{WebUtility.UrlEncode(param.Key)}={WebUtility.UrlEncode(param.Value?.ToString() ?? "")}");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 构建完整URL
|
|
|
|
|
|
var requestUrl = $"{_baseUrl}{apiPath}?{queryString}";
|
|
|
|
|
|
responseInfo.RequestUrl = requestUrl;
|
|
|
|
|
|
responseInfo.RequestMsg = queryString.ToString();
|
|
|
|
|
|
|
|
|
|
|
|
// 发送请求
|
|
|
|
|
|
var response = await _httpClient.GetAsync(requestUrl);
|
|
|
|
|
|
var responseContent = await response.Content.ReadAsStringAsync();
|
|
|
|
|
|
|
|
|
|
|
|
responseInfo.ResponseTime = DateTime.Now;
|
|
|
|
|
|
responseInfo.ResponseMsg = responseContent;
|
|
|
|
|
|
responseInfo.IsSend = response.IsSuccessStatusCode;
|
|
|
|
|
|
responseInfo.UseTime = (responseInfo.ResponseTime - responseInfo.RequestTime).Value.TotalMilliseconds;
|
|
|
|
|
|
|
|
|
|
|
|
if (!response.IsSuccessStatusCode)
|
|
|
|
|
|
{
|
|
|
|
|
|
responseInfo.Exception = new HttpRequestException($"HTTP请求失败,状态码: {response.StatusCode}");
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return responseInfo;
|
|
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
responseInfo.ResponseTime = DateTime.Now;
|
|
|
|
|
|
responseInfo.IsSend = false;
|
|
|
|
|
|
responseInfo.Exception = ex;
|
|
|
|
|
|
responseInfo.UseTime = (responseInfo.ResponseTime - responseInfo.RequestTime).Value.TotalMilliseconds;
|
|
|
|
|
|
return responseInfo;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-01-08 15:43:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|