您的位置:首页 > 编程语言 > C#

C#调用WebService的简单方式

2016-05-11 14:31 585 查看
WebServiceCallpublic class WebServiceCall
{
public void Call()
{
string url = "http://localhost:1117/WebSite/WebService.asmx";
string data = GetSOAPReuquestBody("100");
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.ContentType = "text/xml; charset=utf-8";
req.Method = "POST";
using (Stream reqStream = req.GetRequestStream())
{
byte[] reqData = Encoding.UTF8.GetBytes(data);
reqStream.Write(reqData, 0, reqData.Length);
}

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Console.WriteLine(resp.StatusCode);
foreach (var item in resp.Headers.AllKeys)
{
Console.WriteLine(item + " : " + resp.Headers[item]);
}
using (StreamReader reader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
{
Console.WriteLine(reader.ReadToEnd());
}

}
public void Call2()
{
string url = "http://localhost:1117/WebSite/WebService.asmx/GetNumber";
string data = "id=3";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.ContentType = "application/x-www-form-urlencoded";
req.Method = "POST";
using (Stream reqStream = req.GetRequestStream())
{
byte[] reqData = Encoding.UTF8.GetBytes(data);
reqStream.Write(reqData, 0, reqData.Length);
}

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
Console.WriteLine(resp.StatusCode);
foreach (var item in resp.Headers.AllKeys)
{
Console.WriteLine(item + " : " + resp.Headers[item]);
}
using (StreamReader reader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8))
{
Console.WriteLine(reader.ReadToEnd());
}

}

public string GetSOAPReuquestBody(string param)
{
StringBuilder soap = new StringBuilder();
soap.Append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
soap.Append("<soap12:Envelope xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">");
soap.Append("<soap12:Body>");
soap.Append("<GetNumber  xmlns=\"http://tempuri.org/\">");
soap.Append("<id>");
soap.Append(param);
soap.Append("</id>");
soap.Append("</GetNumber>");
soap.Append("</soap12:Body>");
soap.Append("</soap12:Envelope>");
return soap.ToString();
}
}

http://www.cnblogs.com/disappearwind/articles/2633760.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: