【后端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)

相关推荐