【后端C#】后台通过http post 调用 webservice 的方法
定义http post 调用webservice的某个方法
1 /// <summary> 2 /// http Post调用 WebService 3 /// </summary> 4 public static XmlDocument Test1_QueryPostWebService(String URL, 5 String MethodName, Hashtable Pars) 6 { 7 8 9 HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL + "/" + MethodName);10 request.Method = "POST";11 request.ContentType = "application/x-www-form-urlencoded";12 request.Credentials = CredentialCache.DefaultCredentials;13 request.Timeout = 10000;14 15 #region 参数拼接成字符串,最后编码16 StringBuilder sb = new StringBuilder();17 foreach (string k in Pars.Keys)18 {19 if (sb.Length > 0)20 {21 sb.Append("&");22 }23 sb.Append(24 HttpUtility.UrlEncode(k) + "="25 + HttpUtility.UrlEncode(Pars[k].ToString())26 );27 28 }29 byte[] data = Encoding.UTF8.GetBytes(sb.ToString());30 #endregion31 32 #region 把编码后的参数写入请求流中33 request.ContentLength = data.Length;34 Stream writer = request.GetRequestStream();35 writer.Write(data, 0, data.Length);36 writer.Close();37 #endregion38 39 #region 读取结果,创建XmlDocument对象,对象加载结果40 var response = request.GetResponse();41 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);42 String retXml = sr.ReadToEnd();43 sr.Close();44 XmlDocument doc = new XmlDocument();45 doc.LoadXml(retXml);46 #endregion 47 48 return doc;49 50 51 52 }53
调用实例:
1 protected void Page_Load(object sender, EventArgs e) 2 { 3 Hashtable pars = new Hashtable(); 4 String Url = "http://localhost:63596/WebService1.asmx"; 5 pars["aa"] = "HelenZhou"; 6 XmlDocument doc = WebSvcCaller. 7 Test1_QueryPostWebService(Url, 8 "MyHelloWorld", 9 pars);10 Response.Write(doc.OuterXml); 11 }
赞 (0)