封装helper类:
class WebServiceHelper { /// <summary> /// 1. get请求http方法 /// </summary> /// <param name="url">基础url</param> /// <param name="method">请求方法</param> /// <param name="param">请求参数:Dictionary方式</param> /// <returns></returns> public string getHttp(string url, string method, Dictionary<string, string> param) { string result = string.Empty; string data = string.Empty; StringBuilder sb = new StringBuilder(); try { // 参数拼接成字符串 foreach (string k in param.Keys) { if (sb.Length > 0) { sb.Append("&"); } sb.Append(HttpUtility.UrlEncode(k) + "=" + HttpUtility.UrlEncode(param[k].ToString()));//请求参数 } data = sb.ToString(); string finalUrl = url + "/" + method + "?" + data; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(finalUrl); request.Proxy = null; request.KeepAlive = false; request.Method = "GET"; request.ContentType = "application/json; charset=UTF-8"; request.AutomaticDecompression = DecompressionMethods.GZip; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream myResponseStream = response.GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8); result = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); if (response != null) { response.Close(); } if (request != null) { request.Abort(); } } catch (Exception) { throw; } return result; } /// <summary> /// 2. post请求WebSrvice的方法 /// </summary> /// <param name="url">请求基础url</param> /// <param name="method">请求方法</param> /// <param name="param">请求参数:Dictionary方式</param> /// <returns></returns> public string postWebService(string url, string method, Dictionary<string, string> param) { string result = string.Empty; string data = string.Empty; StringBuilder sb = new StringBuilder(); try { // 参数拼接成字符串,最后编码 foreach (string k in param.Keys) { if (sb.Length > 0) { sb.Append("&"); } sb.Append(HttpUtility.UrlEncode(k) + "=" + HttpUtility.UrlEncode(param[k].ToString()));//请求参数 } data = sb.ToString(); byte[] bytes = Encoding.UTF8.GetBytes(data);//设置编码规格 // 1. 创建请求 //ASCIIEncoding encoding = new ASCIIEncoding(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "/" + method);//创建Web请求 request.Method = "Post"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = bytes.Length; request.Proxy = null; // 2. 请求写入流 Stream writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象 writer.Write(bytes, 0, bytes.Length);//把参数数据写入请求数据流 writer.Close(); // 3. 获得响应 HttpWebResponse response = (HttpWebResponse)request.GetResponse();//获得响应 //传过来为XML用以下方法解析 Stream stream = response.GetResponseStream();//获取响应流 XmlTextReader reader = new XmlTextReader(stream); reader.MovetoContent(); result = reader.ReadInnerXml(); //传过来为json格式用以下方法解析 //StreamReader stream = new StreamReader(response.GetResponseStream(), Encoding.UTF8);//获取响应流 //result = stream.ReadToEnd(); //stream.Close(); reader.Close(); stream.Close(); response.Close(); } catch (Exception) { throw; } return result; } /// <summary> /// 3. post请求WebSrvice的方法 /// </summary> /// <param name="url">请求基础url</param> /// <param name="method">请求方法</param> /// <param name="param">请求参数:Hashtable方式</param> /// <returns></returns> public string postWebServiceHashtable(string url, string method, Hashtable param) { string result = string.Empty; string data = string.Empty; StringBuilder sb = new StringBuilder(); try { // 参数拼接成字符串,最后编码 foreach (string k in param.Keys) { if (sb.Length > 0) { sb.Append("&"); } sb.Append(HttpUtility.UrlEncode(k) + "=" + HttpUtility.UrlEncode(param[k].ToString()));//请求参数 } data = sb.ToString(); byte[] bytes = Encoding.UTF8.GetBytes(data);//设置编码规格 // 1. 创建请求 //ASCIIEncoding encoding = new ASCIIEncoding(); HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "/" + method);//创建Web请求 request.Method = "Post"; request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = bytes.Length; request.Proxy = null; // 2. 请求写入流 Stream writer = request.GetRequestStream();//获取用于写入请求数据的Stream对象 writer.Write(bytes, 0, bytes.Length);//把参数数据写入请求数据流 writer.Close(); // 3. 获得响应 HttpWebResponse response = (HttpWebResponse)request.GetResponse();//获得响应 //传过来为XML用以下方法解析 Stream stream = response.GetResponseStream();//获取响应流 XmlTextReader reader = new XmlTextReader(stream); reader.MovetoContent(); result = reader.ReadInnerXml(); //传过来为json格式用以下方法解析 //StreamReader stream = new StreamReader(response.GetResponseStream(), Encoding.UTF8);//获取响应流 //result = stream.ReadToEnd(); //stream.Close(); reader.Close(); stream.Close(); response.Close(); } catch (Exception) { throw; } return result; } }
@H_404_5@调用方式:
static void Main(string[] args) { WebServiceHelper ws = new WebServiceHelper(); // 1. get请求http方法 string urlgetHttp = "http://www.kuaidi100.com"; // 接口: http://www.kuaidi100.com/query?type=快递公司编码&postid=物流单号 // 快递公司编码:申通="shentong" EMS="ems" 顺丰="shunfeng" 圆通="yuantong" 中通="zhongtong" 韵达="yunda" 天天="tiantian" 汇通="huitongkuaidi" 全峰="quanfengkuaidi" 德邦="debangwuliu" 宅急送="zhaijisong" string methodgetHttp = "query"; Dictionary<string, string> paramgetHttp = new Dictionary<string, string>(); paramgetHttp.Add("type", "huitongkuaidi"); paramgetHttp.Add("postid", "71607485792218"); string getJson1 = ws.getHttp(urlgetHttp, methodgetHttp, paramgetHttp); JObject result1 = (JObject)JsonConvert.DeserializeObject(getJson1); Console.WriteLine(result1); // 2. post请求WebSrvice的方法(Dictionary传参) string url = "http://60.170.60.178:9018/EIFIRE_Interface.asmx"; string method = "nameLogin"; Dictionary<string, string> param = new Dictionary<string, string>(); param.Add("userName", "jfyh"); param.Add("userPwd", "eifire"); param.Add("registration_id", "1"); string getJson2 = ws.postWebService(url, method, param); JObject result2 = (JObject)JsonConvert.DeserializeObject(getJson2); Console.WriteLine(result2); // 3. post请求WebSrvice的方法(Hashtable传参) Hashtable paramht = new Hashtable(); paramht.Add("userName", "jfyh"); paramht.Add("userPwd", "eifire"); paramht.Add("registration_id", "1"); string getJson3 = ws.postWebServiceHashtable(url, method, paramht); JObject result3 = (JObject)JsonConvert.DeserializeObject(getJson3); Console.WriteLine(result3); Console.ReadKey(); }
@H_404_5@版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。