SOAP简单示例
看了網(wǎng)上的幾個(gè)文章,SOAP的示例布局都不清晰,不能馬上入手,特意寫個(gè)例子與大家分享,同時(shí)記錄備用。
當(dāng)前環(huán)境:VS2013 + WPF
private void Button_Click(object sender, RoutedEventArgs e){string url = "http://www.webxml.com.cn/WebServices/WeatherWS.asmx";string soap = SetSoapMessage();// 構(gòu)造soap請(qǐng)求信息string result = GetSOAPReSource(url, soap);txtShow.Text = result.Replace(">", ">\n").Replace("<string>\n", "<string>");}#region 發(fā)起SOAP請(qǐng)求/// <summary>/// 發(fā)起SOAP請(qǐng)求/// </summary>/// <param name="url">URL</param>/// <param name="datastr">數(shù)據(jù)</param>/// <returns></returns>public static string GetSOAPReSource(string url, string datastr){//發(fā)起請(qǐng)求Uri uri = new Uri(url);WebRequest webRequest = WebRequest.Create(uri);webRequest.ContentType = "text/xml; charset=utf-8";webRequest.Method = "POST";using (Stream requestStream = webRequest.GetRequestStream()){byte[] paramBytes = Encoding.UTF8.GetBytes(datastr.ToString());requestStream.Write(paramBytes, 0, paramBytes.Length);}//響應(yīng)WebResponse webResponse = webRequest.GetResponse();using (StreamReader myStreamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8)){string result = "";return result = myStreamReader.ReadToEnd();}} #endregion#region 構(gòu)造soap請(qǐng)求信息string SetSoapMessage(){string header = "";string body = "";string fault = "";body = "<getRegionCountry xmlns=\"http://WebXml.com.cn/\" />";return GetSoapMessageByBase(header, body, fault);} #endregion#region SOAP消息基本結(jié)構(gòu)/// <summary>/// SOAP消息基本結(jié)構(gòu)/// </summary>/// <param name="header">頭部(包含Header)</param>/// <param name="body">內(nèi)容主體(包含Body)</param>/// <param name="fault">錯(cuò)誤提示(包含F(xiàn)ault)</param>/// <returns></returns>string GetSoapMessageByBase(string header, string body, string fault){StringBuilder soap = new StringBuilder();soap.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");soap.Append("<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");//添加頭部if (!string.IsNullOrWhiteSpace(header)){soap.Append("<soap:Header>");soap.Append(header);soap.Append("</soap:Header>");}//添加內(nèi)容if (!string.IsNullOrWhiteSpace(body)){soap.Append("<soap:Body>");soap.Append(body);//添加錯(cuò)誤if (!string.IsNullOrWhiteSpace(fault)){soap.Append("<soap:Fault>");soap.Append(fault);soap.Append("</soap:Fault>");}soap.Append("</soap:Body>");}soap.Append("</soap:Envelope>");return soap.ToString();} #endregion?
轉(zhuǎn)載于:https://www.cnblogs.com/xcsn/p/4383419.html
總結(jié)
- 上一篇: 【SICP练习】127 练习3.58
- 下一篇: html-----020----事件