我正在尝试在标头内部必须声明一个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>
我该如何实现?
谢谢...