php - 具有多个命名空间的 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 的代码,因为它有助于更好地理解。
解决方案
您不需要元素name="Shipment_Creation"
中的属性。SOAP-ENV:Envelope
只需将其删除。
您已经使用ns2
.
推荐阅读
- php - 强制下载图像作为响应流明 + 干预图像
- ios - 在设置它的框架之前给 UIImageView 插入
- spring-boot - 为 REST 端点 REQUEST url 生成的 Swagger 无效主机名
- django - 如何减去两个日期并获得注释中的天数?
- javascript - 将所有其他插件/扩展组织到 main.js [VueJs]
- javascript - 使用 Lodash 展平嵌套对象
- elasticsearch - 让 Kubernetes 的一个节点上只出现一个 elasticsearch pod
- laravel - 在 SSL nginx 上部署 Vuejs 和 Laravel 应用
- java - 在测试带有消息“消息”的 Post API 时获取 415 状态代码:“不支持内容类型 'text/plain;charset=UTF-8'”
- python - 如何在 python 中使用 Weka DECORATE 元学习器进行合奏?