问题描述
我必须集成一个 SoapService 并且花了几个小时在谷歌上搜索试图找到有类似问题的人但无济于事。 我正在尝试使用 WSDL 模式 下的 SoapClient 构建此版本,因为之前的版本是使用正则表达式和模板制作的。 我正在尝试创建的内容:
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:bi="https://aNameSpace.com"
xmlns:ge="https://aNameSpace.com"
xmlns:brok="https://aNameSpace.com">
<soapenv:Header>
<bi:SIT>
<ge:element1>0AECD995-164C-4A55-A29C-C6498A6A31B6</ge:element1>
<ge:element2>C6C3FDF6-FFD3-464C-87E8-E07A5D8C7B50</ge:element2>
<ge:element3>data</ge:element3>
<ge:element4>data</ge:element4>
<ge:element5>data</ge:element5>
<ge:element6>data</ge:element6>
<ge:element7>data</ge:element7>
<ge:element8>
<ge:sub1>data</ge:sub1>
<ge:sub2>data</ge:sub2>
</ge:element8>
<ge:element9>
<ge:sub1>data</ge:sub1>
<ge:sub2>data</ge:sub2>
</ge:element9>
<ge:element10>
<ge:sub1>
<ge:sub1>
<ge:sub1>data</ge:sub1>
<ge:sub2>data</ge:sub2>
<ge:sub3>data</ge:sub3>
<ge:sub4>data</ge:sub4>
</ge:sub1>
</ge:sub1>
</ge:element10>
<ge:element11>
<ge:sub1>
<ge:sub1>data</ge:sub1>
<ge:sub2>data</ge:sub2>
</ge:sub1>
</ge:element11>
</bi:SIT>
</soapenv:Header>
<soapenv:Body>
xml.....
</soapenv:Body>
</soapenv:Envelope>
我不得不对命名空间和数据进行匿名化,但想法保持不变。 我以前能够为另一个集成设置带有命名空间的 Soapheaders:
$loginHeader = new SoapHeader(
'https://securitynamespaces.xsd','Security',[
'Usernametoken' => [
'Username' => 'anon_user_name','Password' => 'anon_password'
]
]
);
$soapClient->__setSoapHeaders($loginHeader);
但不是多个。 在这一点上,我完全迷失了,考虑在创建后重新使用标头中的字符串替换,但更愿意以正确的方式执行此操作。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)