在HttpWebRequest中指定WebMethod

时间:2013-11-19 14:19:08

标签: c# web-services httpwebrequest

如何调用Web服务中定义的GetAllData()方法并使用C#中的HttpWebRequest发送XML作为其参数?

1 个答案:

答案 0 :(得分:0)

您可以将请求中的Method属性设置为所需的HTTP谓词:

var request = (HttpWebRequest)WebRequest.Create("http://example.com/getalldata");
request.Method = "POST";
using (var stream = request.GetRequestStream())
using (var writer = new StreamWriter(stream))
{
    writer.Write("<foo>Bar</foo>");
}

using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
{
    string result = reader.ReadToEnd();
    // do something with the result
}

根据类型,可能还有更简单的方法来使用Web服务。如果它们是SOAP服务,您可以向项目添加服务引用,该服务引用将读取服务的元数据并生成强类型代理,这将允许您直接使用这些方法。

如果它是RESTful服务,您可以利用框架中内置的新HttpClient,这将允许您直接序列化DTO对象。