123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318 |
- using Newtonsoft.Json.Linq;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Runtime.Serialization.Json;
- using System.Text;
- using System.Web;
- namespace WCS_Client.Frm.MBtn_Sys
- {
- public enum RequestMethod
- {
- Get = 1,//获取
- Post = 2,//投寄
- OPTIONS = 3,//选项
- HEAD = 4,//头
- PUT = 5,//放置
- DELETE = 6,//删除
- TRACE = 7,//跟踪
- CONNECT = 8,//连接
- }
- public class WebApiHelper
- {
- //internal static string MesBlankDownAddress = Convert.ToString(System.Configuration.ConfigurationManager.AppSettings["MesBlankDown"]);
- //application/x-www-form-urlencoded//application/json
- /// <summary>
- /// webapi地址调用函数
- /// </summary>
- /// <param name="url">地址</param>
- /// <param name="user_Id">验证用户</param>
- /// <param name="reqMethod">请求方式</param>
- /// <param name="param">参数(json)</param>
- /// <returns></returns>
- internal static JObject SendInfoToWebAPI(string url, string user_Id = null, string reqMethod = "Get", JArray param = null)
- {
- //JArray jsonobj =new JArray();
- JObject jobj = null;
- HttpWebRequest webRequest = null;
- HttpWebResponse webResponse = null;
- try
- {
- webRequest = (HttpWebRequest)HttpWebRequest.Create(url);
- //webRequest.ContentType = "application/x-www-form-urlencoded";
- webRequest.ContentType = "application/json";
- //webRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) ";
- webRequest.Method = reqMethod;
- webRequest.AllowAutoRedirect = false;
- webRequest.Timeout = 50000;
- byte[] PostData = null;
- if (user_Id != null)
- webRequest.Headers.Add("Authorization", user_Id);
- //webRequest.Headers.Add("Authorization", "A1203016");
- if (param != null)
- {
- //string paraUrlCoded = System.Web.HttpUtility.UrlEncode("paramaters");
- //paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(jsonParas);
- PostData = Encoding.UTF8.GetBytes(param[0].ToString());
- webRequest.ContentLength = PostData.Length;
- }
- if (reqMethod == RequestMethod.Post.ToString())
- {
- Stream RequestStream = webRequest.GetRequestStream();
- if (PostData != null)
- {
- RequestStream.Write(PostData, 0, PostData.Length);
- }
- RequestStream.Close();
- RequestStream.Dispose();
- }
- webResponse = (HttpWebResponse)webRequest.GetResponse();
- Stream ResponseStrem = webResponse.GetResponseStream();
- StreamReader reader = new StreamReader(ResponseStrem);
- string ValueString = reader.ReadToEnd();
- jobj = JObject.Parse(ValueString);
- //jsonobj = JArray.Parse(ValueString);
- ResponseStrem.Dispose();
- webResponse.Close();
- }
- catch (WebException webex)
- {
- //webResponse = (HttpWebResponse)webex.Response;
- //StreamReader sr = new StreamReader(webResponse.GetResponseStream());
- //string temp = sr.ReadToEnd();
- string messge = string.Format("通信接口错误,Url={0}", url);
- }
- catch (Exception ex)
- {
- string messge = string.Format("通信接口错误,Url={0}", url);
- }
- finally
- {
- if (webResponse != null)
- {
- webResponse.Close();
- webResponse = null;
- }
- if (webRequest != null)
- {
- webRequest.Abort();
- webRequest = null;
- }
- }
- return jobj;
- }
- internal static JObject SendAsyncInfoToWebAPI(string url, string user_Id = null, string reqMethod = "Get", JArray param = null)
- {
- //JArray jsonobj =new JArray();
- JObject jobj = null;
- HttpWebRequest webRequest = null;
- HttpWebResponse webResponse = null;
- try
- {
- webRequest = (HttpWebRequest)HttpWebRequest.Create(url);
- webRequest.ContentType = "application/x-www-form-urlencoded";
- webRequest.Method = reqMethod;
- webRequest.AllowAutoRedirect = false;
- webRequest.Timeout = 5000;
- byte[] PostData = null;
- if (user_Id != null)
- webRequest.Headers.Add("Authorization", user_Id);
- //webRequest.Headers.Add("Authorization", "A1203016");
- if (param != null)
- {
- //string paraUrlCoded = System.Web.HttpUtility.UrlEncode("paramaters");
- //paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(jsonParas);
- PostData = Encoding.UTF8.GetBytes(param[0].ToString());
- webRequest.ContentLength = PostData.Length;
- }
- if (reqMethod == RequestMethod.Post.ToString())
- {
- Stream RequestStream = webRequest.GetRequestStream();
- if (PostData != null)
- {
- RequestStream.Write(PostData, 0, PostData.Length);
- }
- RequestStream.Close();
- RequestStream.Dispose();
- }
- //webResponse = (HttpWebResponse)webRequest.GetResponse();
- webRequest.BeginGetResponse(AsyncCallbackResponse, webRequest);
- //Stream ResponseStrem = webResponse.GetResponseStream();
- //StreamReader reader = new StreamReader(ResponseStrem);
- //string ValueString = reader.ReadToEnd();
- //jobj = JObject.Parse(ValueString);
- //jsonobj = JArray.Parse(ValueString);
- //ResponseStrem.Dispose();
- webResponse.Close();
- }
- catch (WebException webex)
- {
- webResponse = (HttpWebResponse)webex.Response;
- StreamReader sr = new StreamReader(webResponse.GetResponseStream());
- string temp = sr.ReadToEnd();
- string messge = string.Format("通信接口错误,Url={0}", url);
- }
- catch (Exception ex)
- {
- string messge = string.Format("通信接口错误,Url={0}", url);
- }
- finally
- {
- if (webResponse != null)
- {
- webResponse.Close();
- webResponse = null;
- }
- if (webRequest != null)
- {
- webRequest.Abort();
- webRequest = null;
- }
- }
- return jobj;
- }
- internal static JArray SendInfoToWebAPIList(string url, string user_Id = null, string reqMethod = "Get", JArray param = null)
- {
- JArray jsonobj =new JArray();
- //JObject jobj = null;
- HttpWebRequest webRequest = null;
- HttpWebResponse webResponse = null;
- try
- {
- webRequest = (HttpWebRequest)HttpWebRequest.Create(url);
- //webRequest.ContentType = "application/x-www-form-urlencoded";
- webRequest.ContentType = "application/json";
- //webRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) ";
- webRequest.Method = reqMethod;
- webRequest.AllowAutoRedirect = false;
- webRequest.Timeout = 50000;
- byte[] PostData = null;
- if (user_Id != null)
- webRequest.Headers.Add("Authorization", user_Id);
- //webRequest.Headers.Add("Authorization", "A1203016");
- if (param != null)
- {
- //string paraUrlCoded = System.Web.HttpUtility.UrlEncode("paramaters");
- //paraUrlCoded += "=" + System.Web.HttpUtility.UrlEncode(jsonParas);
- PostData = Encoding.UTF8.GetBytes(param[0].ToString());
- webRequest.ContentLength = PostData.Length;
- }
- if (reqMethod == RequestMethod.Post.ToString())
- {
- Stream RequestStream = webRequest.GetRequestStream();
- if (PostData != null)
- {
- RequestStream.Write(PostData, 0, PostData.Length);
- }
- RequestStream.Close();
- RequestStream.Dispose();
- }
- webResponse = (HttpWebResponse)webRequest.GetResponse();
- Stream ResponseStrem = webResponse.GetResponseStream();
- StreamReader reader = new StreamReader(ResponseStrem);
- string ValueString = reader.ReadToEnd();
- //jobj = JObject.Parse(ValueString);
- jsonobj = JArray.Parse(ValueString);
- ResponseStrem.Dispose();
- webResponse.Close();
- }
- catch (WebException webex)
- {
- //webResponse = (HttpWebResponse)webex.Response;
- //StreamReader sr = new StreamReader(webResponse.GetResponseStream());
- //string temp = sr.ReadToEnd();
- string messge = string.Format("通信接口错误,Url={0}", url);
- }
- catch (Exception ex)
- {
- string messge = string.Format("通信接口错误,Url={0}", url);
- }
- finally
- {
- if (webResponse != null)
- {
- webResponse.Close();
- webResponse = null;
- }
- if (webRequest != null)
- {
- webRequest.Abort();
- webRequest = null;
- }
- }
- return jsonobj;
- }
- private static void AsyncCallbackResponse(IAsyncResult ar)
- {
- HttpWebRequest webrequest = ar.AsyncState as HttpWebRequest;
- var webresponse = webrequest.EndGetResponse(ar) as HttpWebResponse;
- Stream ResponseStrem = webresponse.GetResponseStream();
- using (StreamReader reader = new StreamReader(ResponseStrem))
- {
- string ValueString = reader.ReadToEnd();
- }
- }
- /// <summary>
- /// 生成Json格式
- /// </summary>
- public static string GetJson(object obj)
- {
- DataContractJsonSerializer json = new DataContractJsonSerializer(obj.GetType());
- using (MemoryStream stream = new MemoryStream())
- {
- json.WriteObject(stream, obj);
- string szJson = Encoding.UTF8.GetString(stream.ToArray());
- return szJson;
- }
- }
- /// <summary>
- /// 生成Json格式
- /// </summary>
- public static string GetJson_2<T>(T t)
- {
- DataContractJsonSerializer json = new DataContractJsonSerializer(typeof(T));
- using (MemoryStream stream = new MemoryStream())
- {
- json.WriteObject(stream, t);
- string szJson = Encoding.UTF8.GetString(stream.ToArray());
- return szJson;
- }
- }
- /// <summary>
- /// Json转Model
- /// </summary>
- public static T ParseFromJson<T>(string szJson)
- {
- T obj = Activator.CreateInstance<T>();
- using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(szJson)))
- {
- DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType());
- return (T)serializer.ReadObject(ms);
- }
- }
- /// <summary>
- /// Json转List
- /// </summary>
- public static List<T> ParseToListFromJson<T>(JArray ja)
- {
- var result = new List<T>();
- foreach (var item in ja)
- {
- result.Add(ParseFromJson<T>(item.ToString()));
- }
- return result;
- }
- }
- }
|