using Newtonsoft.Json;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Net;
|
using System.Text;
|
using WIDESEA_Core.Utilities;
|
using WIDESEA_Core.Utilities.Response;
|
using WIDESEA_Entity.CustomModels.RGVModel;
|
using static WIDESEA_Core.Utilities.Response.WebResponseFromWMS;
|
|
namespace WIDESEA_Core.Utilities
|
{
|
public class HttpHelper<T>
|
{
|
|
public static WebResponseContent GetHttpRequestData(T postData, string address)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
string tmp = JsonConvert.SerializeObject(postData);
|
byte[] param = Encoding.UTF8.GetBytes(tmp);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
|
request.Method = "POST";
|
request.ContentType = "application/json";
|
request.GetRequestStream().Write(param, 0, param.Length);
|
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
|
{
|
Stream stream = response.GetResponseStream();
|
StreamReader streamReader = new StreamReader(stream);
|
string webResponse = streamReader.ReadToEnd();
|
content = JsonConvert.DeserializeObject<WebResponseContent>(webResponse);
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Status = false;
|
content.Message = ex.Message;
|
}
|
return content;
|
}
|
|
|
public static WebResponseContent GetHttpRequestDataFromWMS(List<Dictionary<string, object>> postData, string address)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
Dictionary<string, object> dataDic = new Dictionary<string, object>();
|
Dictionary<string, object> headerDic = new Dictionary<string, object>();
|
headerDic.Add("header", postData);
|
dataDic.Add("xmldata",headerDic);
|
string tmp = JsonConvert.SerializeObject(dataDic,new JsonSerializerSettings
|
{
|
DateFormatString = "yyyy-MM-dd HH:MM:ss",
|
});
|
Console.WriteLine($"address = {address},postData = {tmp}");
|
byte[] param = Encoding.UTF8.GetBytes(tmp);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
|
request.Method = "POST";
|
request.ContentType = "application/json";
|
request.GetRequestStream().Write(param, 0, param.Length);
|
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
|
{
|
Stream stream = response.GetResponseStream();
|
StreamReader streamReader = new StreamReader(stream);
|
string webResponse = streamReader.ReadToEnd();
|
Console.WriteLine($"webResponse webResponse = {webResponse}");
|
webResponse = webResponse.Replace("return", "ret");
|
WebResponseFromWMS wmsData = JsonConvert.DeserializeObject<WebResponseFromWMS>(webResponse);
|
if (wmsData.Response.ret.retCode == "0000")
|
{
|
content.OK(wmsData.Response.ret.retDesc);
|
}
|
else
|
{
|
content.Error(wmsData.Response.ret.retDesc);
|
}
|
Console.WriteLine($"wmsData result == {JsonConvert.SerializeObject(wmsData)}");
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
Console.WriteLine($"ex === {ex.Message}");
|
}
|
return content;
|
}
|
|
|
public static WebResponseContent PostHttpRequestDataToAGV(Dictionary<string, object> postData, string address)
|
{
|
WebResponseContent content = new WebResponseContent();
|
|
string paramData = JsonConvert.SerializeObject(postData);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
|
request.Method = "POST";
|
byte[] bytes = Encoding.UTF8.GetBytes(paramData);
|
request.ContentType = "application/json";
|
request.Headers.Add("token", "123456");
|
request.Headers.Add("name", "mengx");
|
request.ContentLength = bytes.Length;
|
try
|
{
|
Stream myResponseStream = request.GetRequestStream();
|
myResponseStream.Write(bytes, 0, bytes.Length);
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
|
string retString = myStreamReader.ReadToEnd();
|
WebResponseFromAGV agvData = JsonConvert.DeserializeObject<WebResponseFromAGV>(retString);
|
content.Data = agvData;
|
|
Console.WriteLine($"agvData result == {JsonConvert.SerializeObject(agvData)}");
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
|
|
public static WebResponseContent GetHttpRequestDataFromAGV(List<string> chains,string address)
|
{
|
WebResponseContent content = new WebResponseContent();
|
|
address = address + "?taskChainIds=" + string.Join(',',chains);
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
|
request.Method = "GET";
|
request.ContentType = "application/json";
|
request.Headers.Add("token", "123456");
|
request.Headers.Add("name", "mengx");
|
try
|
{
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
|
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
|
string retString = myStreamReader.ReadToEnd();
|
|
//具体返回的数据结果待确认
|
//todo...
|
//WebResponseFromAGV agvData = JsonConvert.DeserializeObject<WebResponseFromAGV>(retString);
|
//content.Data = agvData;
|
|
Console.WriteLine($"retString result == {retString}");
|
}
|
catch (Exception ex)
|
{
|
content.Error(ex.Message);
|
}
|
return content;
|
}
|
|
|
public static WebResponseContent PostHttpRequestDataToRGV(T postData, string address)
|
{
|
WebResponseContent content = new WebResponseContent();
|
try
|
{
|
string tmp = JsonConvert.SerializeObject(postData);
|
byte[] param = Encoding.UTF8.GetBytes(tmp);
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);
|
request.Method = "POST";
|
request.ContentType = "application/json";
|
request.GetRequestStream().Write(param, 0, param.Length);
|
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
|
{
|
Stream stream = response.GetResponseStream();
|
StreamReader streamReader = new StreamReader(stream);
|
string webResponse = streamReader.ReadToEnd();
|
|
if (address.Contains("getRgvInfos"))
|
{
|
RgvDeviceStatusModel rgvData = JsonConvert.DeserializeObject<RgvDeviceStatusModel>(webResponse);
|
content.OK();
|
content.Data = rgvData;
|
}
|
else
|
{
|
if (webResponse.Contains("500"))
|
{
|
content.Error(webResponse);
|
}
|
else
|
{
|
RgvReturnModel rgvData = JsonConvert.DeserializeObject<RgvReturnModel>(webResponse);
|
content.OK();
|
content.Data = rgvData;
|
}
|
}
|
|
}
|
}
|
catch (Exception ex)
|
{
|
content.Status = false;
|
content.Message = ex.Message;
|
}
|
return content;
|
}
|
|
|
}
|
}
|