具有多个命名空间的 SOAP 请求



我发送了一个 POST 请求以从运输公司生成 AWB。为了做到这一点,我必须通过 SOAP API POST 请求发布多个数据条目。下面的XML是必需的类似内容(我已经简化了,否则它要求>30个参数(

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://schemas.datacontract.org/2004/07/PostaWebClient"
xmlns:ns2="http://tempuri.org/" name="Shipment_Creation">
<SOAP-ENV:Body>
<ns2:Shipment_Creation>
<ns2:SHIPINFO>
<ns1:ClientInfo>
<ns1:UserName>String</ns1:UserName>
</ns1:ClientInfo>                
<ns1:CodeShippmentType>SHPT2</ns1:CodeShippmentType>                 
</ns2:SHIPINFO>
</ns2:Shipment_Creation>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

我怎样才能实现相同的目标,我正在使用 SoapClient 并在"货件创建"标签之间发送一系列参数,但我收到以下错误

格式化程序在尝试反序列化消息时引发异常:反序列化操作"Shipment_Creation"的请求消息正文时出错。预期命名空间"http://schemas.xmlsoap.org/soap/envelope/"中的结束元素"正文"。从命名空间 '' 中找到元素 'param1'。第 2 行,位置 246。

我是 SOAP 的新手,请帮助我朝着正确的方向前进,我什至非常感谢上述 XML 的代码,因为它有助于更好地理解。

SOAP-ENV:Envelope元素中不需要name="Shipment_Creation"属性。只需将其删除即可。

您已经使用ns2引用元素中的命名空间。

最新更新