在SOAP信封内发送XML字符串

时间:2011-07-22 21:28:45

标签: xml web-services soap

我正在尝试调用第三方Web服务,该服务正在肥皂信封中寻找一个xml字符串。但是,当我传入一个xml字符串时,服务器响应400 Bad Request。如果我将xml退出,那么webservice会正确返回一个错误,指出它正在期待该参数。我已经和开发人员谈过网络服务了,他们不确定为什么会这样。

这是我发送的SOAP信封,有问题的节点是<web:xmlString>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.example.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:AddWidget>
         <web:Key>6F257576-2F95-4764-8539</web:Key>
         <web:listID>62017</web:listID>
         <web:Type>S</web:Type>
         <web:format>HTML</web:format>
         <web:xmlString><xml><Emails><Emailaddress>foo@bar.com</Emailaddress><User1>263885</User1></Emails></xml></web:xmlString>
         <web:sfID>1536</web:sfID>
      </web:AddWidget>
   </soapenv:Body>

我试过把xml字符串放在引号中,编码它等等,没有运气。

2 个答案:

答案 0 :(得分:0)

我认为你需要这样做。

<web:xmlString><xml><Emails><Emailaddress>foo@bar.com</Emailaddress><User1>263885</User1></Emails></xml></web:xmlString>

不确定。您可以尝试使用,也可以不使用标记对进行尝试。

<web:xmlString><Emails><Emailaddress>foo@bar.com</Emailaddress><User1>263885</User1></Emails></web:xmlString>

上述任何一种都应该有效。 另外,您需要查看XSD(如果有)或WSDL更正确。 HTH

答案 1 :(得分:0)

我知道它的旧,但下面的也可以帮助你或已故的;) 迟到总比没有好。

您可以将其作为原始xml

发送
<web:xmlString><xml><Emails><Emailaddress>foo@bar.com</Emailaddress><User1>263885</User1></Emails></xml></web:xmlString>

如果将xmlString声明为XElement数据类型