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 { 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(webResponse); } } catch (Exception ex) { content.Status = false; content.Message = ex.Message; } return content; } public static WebResponseContent GetHttpRequestDataFromWMS(List> postData, string address) { WebResponseContent content = new WebResponseContent(); try { Dictionary dataDic = new Dictionary(); Dictionary headerDic = new Dictionary(); 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(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 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(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 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(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(webResponse); content.OK(); content.Data = rgvData; } else { if (webResponse.Contains("500")) { content.Error(webResponse); } else { RgvReturnModel rgvData = JsonConvert.DeserializeObject(webResponse); content.OK(); content.Data = rgvData; } } } } catch (Exception ex) { content.Status = false; content.Message = ex.Message; } return content; } } }