我正在尝试调用第三方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字符串放在引号中,编码它等等,没有运气。
答案 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数据类型