用Soap调用WebService

using System;

using System.Collections.Generic;

using System.Linq;

using System.Net;

using System.Text;

using System.Threading.Tasks;

using System.IO;

namespace

 Weather

{

classProgram

    {

       staticvoid Main(string[] args)

        {

          StringBuilder soap = newStringBuilder();

            soap.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");

            soap.Append("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\http://www.w3.org/2001/XMLSchema\ xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");

            soap.Append("<soap:Body>");

            soap.Append("<getWeatherbyCityName  xmlns=\"http://WebXml.com.cn/\">");

            soap.Append("<theCityName>北京</theCityName>");

            soap.Append("</getWeatherbyCityName >");

            soap.Append("</soap:Body>");

            soap.Append("</soap:Envelope>");

            string url = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";

            Console.WriteLine(GetSOAPReSource(url, soap.ToString()));

            Console.ReadKey();

        }

       publicstaticstring GetSOAPReSource(string url, string datastr)

        {

           //发起请求

     Uri uri = newUri(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);

            }

           //响应

           WebResponse webResponse = webRequest.GetResponse();

           using (StreamReader myStreamReader = newStreamReader(webResponse.GetResponseStream(), Encoding.UTF8))

            {

               string result = "";

               return result = myStreamReader.ReadToEnd();

            }

        }

    }

}

posted @ 2012-06-11 17:08  威少  阅读(792)  评论(1编辑  收藏  举报