C#使用SOAP获取webservice实例解析

本文主要参考如下两个链接,,并整理: Java使用SOAP: C# send soap and get response:

1.webservice提供方: 2.下面我们以“获得腾讯QQ在线状态”为例。网页介绍参考:?op=qqCheckOnline

代码如下:

using System.IO;using System.Xml;using System.Net;namespace ConsoleApplicationTest2{class SOAPTest{(string qq){var _url = “http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx”;var _action = “http://WebXml.com.cn/qqCheckOnline”;XmlDocument soapEnvelopeXml = CreateSoapEnvelope(qq);HttpWebRequest webRequest = CreateWebRequest(_url, _action);InsertSoapEnvelopeIntoWebRequest(soapEnvelopeXml, webRequest);// begin async call to web request.IAsyncResult asyncResult = webRequest.BeginGetResponse(null, null);// suspend this thread until call is complete. You might want to// do something usefull here like update your UI.asyncResult.AsyncWaitHandle.WaitOne();// get the response from the completed web request.string soapResult;using (WebResponse webResponse = webRequest.EndGetResponse(asyncResult)){using (StreamReader rd = new StreamReader(webResponse.GetResponseStream())){soapResult = rd.ReadToEnd();}Console.WriteLine(soapResult);}}private static HttpWebRequest CreateWebRequest(string url, string action){HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);webRequest.Headers.Add(“SOAPAction”, action);webRequest.ContentType = “text/xml;charset=\”utf-8\””;webRequest.Accept = “text/xml”;webRequest.Method = “POST”;return webRequest;}private static XmlDocument CreateSoapEnvelope(string qq){XmlDocument soapEnvelop = new XmlDocument();string soapXml = @”<SOAP-ENV:Envelope xmlns:SOAP-ENV=””http://schemas.xmlsoap.org/soap/envelope/”” xmlns:xsi=””http://www.w3.org/1999/XMLSchema-instance”” xmlns:xsd=””http://www.w3.org/1999/XMLSchema””><SOAP-ENV:Body><qqCheckOnline xmlns=””http://WebXml.com.cn/””><qqCode>qq_Code</qqCode></qqCheckOnline></SOAP-ENV:Body></SOAP-ENV:Envelope>”;soapEnvelop.LoadXml(soapXml.Replace(“qq_Code”,qq));return soapEnvelop;}(XmlDocument soapEnvelopeXml, HttpWebRequest webRequest){using (Stream stream = webRequest.GetRequestStream()){soapEnvelopeXml.Save(stream);}}static void test(){string[] qq = { “49”, “4941”, “4949252”, “494925223”, “4949252242”, “48492522502”, “49492522” };foreach (var qc in qq)SOAPTest.CallWebService(qc);Console.ReadKey();}}}

如下图即可以得到运行结果:

从此便踏上征途,也许会孤独一程。

C#使用SOAP获取webservice实例解析

相关文章:

你感兴趣的文章:

标签云: