我通过制作SOAP标题遇到了一些问题:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="elementos" xmlns:ns2="elementoscomunes">
<SOAP-ENV:Header>
<ns2:CABECERA>
<item>
<key>Element</key>
<value>
<item>
<key>Key</key>
<value/>
</item>
<item>
<key>Values</key>
<value>
<item>
<key>Value</key>
<value/>
</item>
</value>
</item>
</value>
</item>
</ns2:CABECERA>
因此,添加了 ITEM 标记,因为找不到命名空间,我试图更改命名空间根目录,但我认为这不是解决方案..
我的服务是在ssl下,所有名称空间都必须在ssl下吗?
标签可以是错误代码说明吗?
遇到了PHP错误 严重性:警告 消息:SoapClient :: __ doRequest():SSL:由同行重置连接
和
SOAP FAULT:
SoapFault对象 ( [message:protected] =&gt;获取http标头时出错
我原来的.wdsl有下一个标题定义:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:elem="elementoscomunes" xmlns:elem1="elementos">
<soapenv:Header>
<elem:CABECERA>
<!--Zero or more repetitions:-->
<Element>
<Key>?</Key>
<Values>
<!--Zero or more repetitions:-->
<Value>?</Value>
</Values>
</Element>
</elem:CABECERA>
</soapenv:Header>
</elem:CABECERA>
</soapenv:Header>
我是否必须添加新的命名空间?
我在Apache服务器上,因此密钥标记必须是&#34;密钥&#34;我生成如下所示的代码:
$headerbody = array('Element' => array('Key' => '', 'Values' => array('Value' => '')));
$header = new SOAPHeader('namespace', 'CABECERA', $headerbody );
$sClient->__setSoapHeaders($header);
任何建议?
谢谢!
答案 0 :(得分:0)
我觉得它太旧了,但我这样做的解决方案是:
只需替换它:
$headerbody = array('Element' => array('Key' => '', 'Values' => array('Value' => '')));
用这个:
$headerbody = (object) array('Element' => array('Key' => '', 'Values' => array('Value' => '')));
希望这有帮助。!