Mega Code Archive

 
Categories / C# Tutorial / Network
 

Call Soap service

using System; using System.IO; using System.Net; using System.Text; using System.Xml; using System.Xml.XPath; public class CallSoap {   private const string soapNS = "http://schemas.xmlsoap.org/soap/envelope/";   private const string yourNS = "http://yourName.com";   private static readonly Encoding encoding = Encoding.UTF8;   public static void Main(string [] args) {     MemoryStream stream = new MemoryStream( );     XmlTextWriter writer = new XmlTextWriter(stream,encoding);     writer.WriteStartDocument( );     writer.WriteStartElement("soap","Envelope",soapNS);     writer.WriteStartElement("Body",soapNS);     writer.WriteStartElement("GetNumberInStock",yourNS);     writer.WriteElementString("productCode","1111");     writer.WriteEndElement( );      writer.WriteEndDocument( );     writer.Flush( );     stream.Seek(0,SeekOrigin.Begin);     StreamReader reader = new StreamReader(stream);     string soap = reader.ReadToEnd( );     HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://127.0.0.1/myQuery.asmx");     request.Method = "POST";     request.ContentType = "text/xml; charset=" + encoding.HeaderName;     request.ContentLength = soap.Length;     request.Headers["SOAPAction"] = "http://Product.com/GetNumberInStock";     StreamWriter streamWriter = new StreamWriter(request.GetRequestStream( ));     streamWriter.Write(soap);     streamWriter.Flush( );     WebResponse response = request.GetResponse( );     Stream responseStream = response.GetResponseStream( );     XPathDocument document = new XPathDocument(responseStream);     XPathNavigator nav = document.CreateNavigator( );     XPathNodeIterator nodes = nav.Select("//Envelope/Body/GetNumberIn/GetNumberInResult");     Console.WriteLine(nodes.Current);   } }