【发布时间】:2014-03-24 12:42:38
【问题描述】:
在 PHP 5.3.28 中使用 SoapClient 想要创建一个如下所示的 soap 标头:
<soap:Header>
<ns:RequestParams Size="Large" Color="Blue" Brand="xyz">
</soap:Header>
如果我这样构造标题:
$params = array('RequestParams' => array('Size' => 'Large', 'Color' => 'Blue', 'Brand' => 'xyz');
$header = new SoapHeader(NameSpace, 'RequestParams', $params);
$client = new SoapClient(NULL, array("location" => "https://endpoint-url",
"uri" => "http://namespace-uri",
"soap_version" => SOAP_1_2, "trace" => 1));
$client->__setSoapHeaders($header);
$result = $client->__soapCall(some soap call here);
echo $client->__getLastRequest() . "\n";
我得到的标题是:
<env:Header>
<ns2:RequestParams>
<item><key>RequestParams</key><value>
<item><key>Size</key><value>Large</value></item>
<item><key>Color</key><value>Blue</value></item>
<item><key>LastName</key><value>xyz</value></item></value>
</item>
</ns2:RequestParams>
</env:Header>
我收到来自服务器的响应,告诉我这是一个无效的标头。我四处搜索,似乎没有太多关于 PHP soapclient 如何从数据结构创建标头的信息。知道如何使用 SoapClient 获得我想要的标题格式吗? 任何指针表示赞赏。
【问题讨论】:
-
想我会选择这个解决方案:stackoverflow.com/questions/690262/…
标签: php soap soap-client