SOAP HEADERS错误

时间:2015-08-14 12:20:23

标签: php soap header xml-namespaces

我通过制作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);

任何建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

我觉得它太旧了,但我这样做的解决方案是:

只需替换它:

$headerbody = array('Element' => array('Key' => '', 'Values' => array('Value' => '')));

用这个:

$headerbody = (object) array('Element' => array('Key' => '', 'Values' => array('Value' => '')));

希望这有帮助。!