用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();
}
}
}
}