使用PHP在call soap中添加自定义HTTP标头

时间:2012-10-03 09:29:25

标签: php soap

我正在尝试连接到WebService SOAP。 该服务要求我们在soap调用的HTTP标头中添加自定义参数

$context = array('http' =>
    array(
        'header'  => "APIToken: $api_token\r\n"
    )
);
$soap_options = array(
    'stream_context' => stream_context_create($context),
    'encoding' => 'UTF-8',
    'exceptions' => TRUE,
    'trace' => true,
    'local_cert' => 'mycert.pem',
    'passphrase'=>'xxx',
    'location'=>$this->url_soap_dev
);

$soap_client = new SoapClient('soap.wsdl', $soap_options);

$args = array(
    'param1' => $var,
    'param2' => 0,
    'optionalParameters'=>array()
);

$ret = $soap_client->RemoteFunction(array('parameter'=>$args));  

这是我的请求标题:

POST /server/soap HTTP/1.1
Host: domain.com
Connection: Keep-Alive
User-Agent: PHP-SOAP/5.2.6-1+lenny16
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 400

我可以在哪里添加自定义参数?

THX。

2 个答案:

答案 0 :(得分:2)

此过程适用于PHP> = 5.3

以下是添加此功能的补丁 https://bugs.php.net/bug.php?id=49853

答案 1 :(得分:0)

使用php 5.6,我得到了顶部的示例代码,没有任何功能更改,我所做的就是将WSDL,标头值更改为我正在使用的服务器。