客户端发送SOAP请求并接收响应
试图创建一个C#客户端(将被开发为Windows服务),向一个Web服务发送SOAP请求(并获得结果)。
从这个问题我看到了这个代码。
protected virtual WebRequest CreateRequest(ISoapMessage soapMessage)
{
var wr = WebRequest.Create(soapMessage.Uri);
wr.ContentType = "text/xml;charset=utf-8";
wr.ContentLength = soapMessage.ContentXml.Length;
wr.Headers.Add("SOAPAction", soapMessage.SoapAction);
wr.Credentials = soapMessage.Credentials;
wr.Method = "POST";
wr.GetRequestStream().Write(Encoding.UTF8.GetBytes(soapMessage.ContentXml), 0, soapMessage.ContentXml.Length);
return wr;
}
public interface ISoapMessage
{
string Uri { get; }
string ContentXml { get; }
string SoapAction { get; }
ICredentials Credentials { get; }
}
看起来不错,有谁知道如何使用它,以及它是否是最佳做法?
152
3
我通常使用另一种方式来做同样的事情
我得到了这个简单的解决方案这里。
在.NET 4.0 C#中发送SOAP请求和接收响应,无需使用WSDL或代理类:
最好的做法是引用WSDL并像网络服务参考一样使用它。 这更容易,效果也更好,但如果你没有WSDL,XSD定义也是一段好的代码。