123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- using Newtonsoft.Json;
- using Newtonsoft.Json.Linq;
- using NPOI.SS.Formula.Functions;
- using Org.BouncyCastle.Asn1.Ocsp;
- using System;
- using System.IO;
- using System.Net;
- using System.Net.NetworkInformation;
- using System.Text;
- using System.Threading.Tasks;
- namespace MainForm
- {
- /// <summary>
- /// Http工具类
- /// </summary>
- class HttpUitls
- {
- /// <summary>
- /// Get请求
- /// </summary>
- /// <param name="Url"></param>
- /// <returns></returns>
- public static ResponseData Get(string Url)
- {
- ResponseData responseData = new ResponseData();
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
- HttpWebResponse response = null;
- Stream myResponseStream = null;
- StreamReader myStreamReader = null;
- try
- {
- request.Proxy = null;
- request.KeepAlive = false;
- request.Method = "GET";
- request.ContentType = "application/json; charset=UTF-8";
- //request.ContentType = "application/x-www-form-urlencoded";//窗体数据被编码为名称/值对形式
- request.AutomaticDecompression = DecompressionMethods.GZip;
- response = (HttpWebResponse)request.GetResponse();
- myResponseStream = response.GetResponseStream();
- myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
- string retString = myStreamReader.ReadToEnd();
- //解析结果
- JObject joRoot;
- joRoot = (JObject)JsonConvert.DeserializeObject(retString);
- responseData = new ResponseData
- {
- code = joRoot["code"].ToString(),
- msg = joRoot["msg"].ToString(),
- data = joRoot["data"].ToString()
- };
- }
- catch (Exception ex)
- {
- responseData = new ResponseData
- {
- code = "",
- msg = ex.Message.ToString(),
- data = string.Empty
- };
- }
- finally
- {
- response?.Close();
- request?.Abort();
- myStreamReader?.Close();
- myResponseStream?.Close();
- }
- return responseData;
- }
- /// <summary>
- /// Post请求可用
- /// </summary>
- /// <param name="Url"></param>
- /// <param name="Data"></param>
- /// <param name="Referer"></param>
- /// <returns></returns>
- public static ResponseData Post(string url, string data)
- {
- ResponseData responseData = new ResponseData();
- HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
- Stream myResponseStream = null;
- StreamReader myStreamReader = null;
- HttpWebResponse response = null;
- try
- {
- request = (HttpWebRequest)WebRequest.Create(url);
- request.Method = "POST";
- request.Referer = "";
- //request.Proxy = new WebProxy("192.168.1.12",80);
- byte[] bytes = Encoding.UTF8.GetBytes(data);
- //request.ContentType = "multipart/form-data; charset=UTF-8"; ;//窗体数据被编码为名称/值对形式
- request.ContentType = "application/json;charset=utf-8";
- request.ContentLength = bytes.Length;
- myResponseStream = request.GetRequestStream();
- myResponseStream.Write(bytes, 0, bytes.Length);
- string retString;
- response = (HttpWebResponse)request.GetResponse();
- myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
- retString = myStreamReader.ReadToEnd();
- //解析结果
- JObject joRoot;
- joRoot = (JObject)JsonConvert.DeserializeObject(retString);
- responseData = new ResponseData
- {
- code = joRoot["code"].ToString(),
- msg = joRoot["msg"].ToString(),
- data = joRoot["data"].ToString()
- };
- }
- catch (Exception ex)
- {
- responseData = new ResponseData
- {
- code = string.Empty,
- msg = ex.Message.ToString(),
- data = string.Empty
- };
- }
- finally
- {
- response?.Close();
- request?.Abort();
- myStreamReader?.Close();
- myResponseStream?.Close();
- }
- return responseData;
- }
- public static bool PingIP(string address)
- {
- try
- {
- Ping p = new Ping();
- PingReply r = p.Send(address, 1200);
- if (r.Status == IPStatus.Success) return true;
- return false;
- }
- catch (Exception ex)
- {
- return false;
- }
- }
- /// <summary>
- /// 上传文件
- /// </summary>
- /// <param name="url">地址</param>
- /// <param name="path">路径</param>
- /// <returns></returns>
- public static string HttpUploadFile(string url, string path)
- {
- // 设置参数
- HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
- CookieContainer cookieContainer = new CookieContainer();
- request.CookieContainer = cookieContainer;
- request.AllowAutoRedirect = true;
- request.Method = "POST";
- string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线
- request.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary;
- byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n");
- byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n");
- int pos = path.LastIndexOf("\\");
- string fileName = path.Substring(pos + 1);
- //请求头部信息
- // StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"file\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName));
- StringBuilder sbHeader = new StringBuilder(string.Format("Content-Disposition:form-data;name=\"inputs\";filename=\"{0}\"\r\nContent-Type:application/octet-stream\r\n\r\n", fileName));
- byte[] postHeaderBytes = Encoding.UTF8.GetBytes(sbHeader.ToString());
- FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read);
- byte[] bArr = new byte[fs.Length];
- fs.Read(bArr, 0, bArr.Length);
- fs.Close();
- Stream postStream = request.GetRequestStream();
- postStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length);
- postStream.Write(postHeaderBytes, 0, postHeaderBytes.Length);
- postStream.Write(bArr, 0, bArr.Length);
- postStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length);
- postStream.Close();
- //发送请求并获取相应回应数据
- HttpWebResponse response = request.GetResponse() as HttpWebResponse;
- //直到request.GetResponse()程序才开始向目标网页发送Post请求
- Stream instream = response.GetResponseStream();
- StreamReader sr = new StreamReader(instream, Encoding.UTF8);
- //返回结果网页(html)代码
- string content = sr.ReadToEnd();
- return content;
- }
- /// <summary>
- /// 提交数据到MES
- /// </summary>
- /// <param name="url">地址</param>
- /// <param name="data">数据</param>
- /// <returns></returns>
- public static string SubmitDataToMES(string url, string data)
- {
- string ret = string.Empty;
- ResponseData responseData = HttpUitls.Post(url, data);
- if (responseData.code == "200")
- {
- ret = "成功";
- }
- else
- {
- ret = responseData.msg;
- }
- return ret;
- }
- /// <summary>
- /// 获取订单信息 By 订单号
- /// </summary>
- /// <param name="data"></param>
- /// <returns></returns>
- public static WorkOrderInfo GetWOData(string sono)
- {
- string url = @"HTTP://" + GlobalContext.ServerHost + @"/api/ProductionLine/GetWorkOrderInfo";
- WorkOrderInfo ret = new WorkOrderInfo();
- WO wo = new WO { sono = sono };
- ResponseData responseData = HttpUitls.Post(url, JsonConvert.SerializeObject(wo));
- try
- {
- if (responseData.code == "200")
- {
- JObject joRoot;
- joRoot = (JObject)JsonConvert.DeserializeObject(responseData.data);
- ret.sono = joRoot["sono"].ToString();
- ret.prtno = joRoot["prtno"].ToString();
- ret.mtltmrk = joRoot["mtltmrk"].ToString();
- ret.prtdesc = joRoot["prtdesc"].ToString();
- ret.prodline = joRoot["prodline"].ToString();
- ret.splcode = joRoot["splcode"].ToString();
- ret.soporqty = joRoot["soporqty"].ToString();
- ret.plnsign = joRoot["plnsign"].ToString();
- ret.soreqdat = joRoot["soreqdat"].ToString();
- }
- else
- {
- ret = null;
- }
- }
- catch(Exception ex)
- {
- ret = null;
- }
- return ret;
- }
- }
- }
|