如何在PHP SOAP客户端的标头中设置参数

时间:2019-02-18 10:48:00

标签: php soap

我正在尝试在标头内部必须声明一个Addressing参数的地方进行SOAP请求。

这是我在PHP中的代码:

    $params = array(); 
    $params['xmlns:tem'] = "http://tempuri.org/";
    $params['soap_version'] = SOAP_1_2;
    $params['trace'] = 1;

    $client = new SoapClient("myurl",$params);
    $header = array();
    $header[] = new SoapHeader('http://www.w3.org/2005/08/addressing', "Action", "myurlAction");
    $header[] = new SoapHeader('http://www.w3.org/2005/08/addressing', "To", "myurlTo");
    $client->__setSoapHeaders($header);
    $result = $client->myCall()

要获得结果,我必须像这样在标头中声明wsa(注意标头中声明的ns2参数):

<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://tempuri.org/">
    <env:Header xmlns:ns2="http://www.w3.org/2005/08/addressing">
  .... 
</env:Header>

avobe XML返回数据,所以这就是我想要php生成的东西。

但是通过我的PHP代码,我得到了以下结果(参数ns2在信封中声明):

<env:Envelope
xmlns:env="http://www.w3.org/2003/05/soap-envelope"
xmlns:ns1="http://tempuri.org/"
xmlns:ns2="http://www.w3.org/2005/08/addressing">
    <env:Header> ... </env:Header>

我该如何实现?

谢谢...

0 个答案:

没有答案