有没有更好的方法在C#中形成一个soap请求?

时间:2010-09-30 11:34:47

标签: c# .net soap

这甚至有效吗?

  XmlDocument doc = new XmlDocument();
     doc.InnerXml = @"<?xml version='1.0' encoding='utf-8'?><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:Body><Authenticate xmlns='https://na.ntrsupport.com'>
                 <IdOwner>99999</IdOwner>
                 <Login>MyLogin</Login>" +
                 "<Pwd>myPass</Pwd>" +
                 "<PwdInterfaces>interfacePass</PwdInterfaces>" +
                 "<Platform>domain</Platform>" +
                 "<H>" + getMd5EncodedHash(NtrHash) + "</H>" + 
                 "</Authenticate></soap:Body></soap:Envelope>";

我刚从Web服务返回一个未定义的错误......

2 个答案:

答案 0 :(得分:5)

通过字符串操作来制作XML会让你遇到麻烦。什么是登录och Pwd包含以下任何字符:åäö&lt;&gt;&amp;?改为使用XmlDocument或类似的东西。

您可以访问Web服务的WSDL吗?如果是这样,请使用Visual Studio中的“添加服务引用”为您的Web服务创建一个类型化代理。

答案 1 :(得分:2)

您可以使用SoapClient类。这样,您就不必自己创建消息。