我正在尝试访问需要自定义标头进行身份验证的SOAP API。我可以很好地创建标题,因为它只是用户名,密码,id,简单明了,但出于某种原因,当实际请求通过时它只发送用户名和密码,而不是id。
我创建了一个SoapHeader:
$auth = array("UserName" => $user, "Password" => $password, "ClientId" => $clientId);
$header = new SoapHeader("namespace", "ClientHeader", $auth, FALSE);
$this->client->__setSoapHeaders($header);
我var_dump创建的标头,客户端等,并验证UserName,Password和ClientId是否都在标题中。
SoapClient::__set_state(array(
Extra Fields Removed
'__default_headers' =>
array (
0 =>
SoapHeader::__set_state(array(
'namespace' => 'namespace',
'name' => 'ClientHeader',
'data' =>
array (
'UserName' => 'name',
'Password' => 'password',
'ClientId' => 'id',
),
)),
),
))
但是当我发出请求时,只发送UserName和Password:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="namespace>
<SOAP-ENV:Header>
<ns1:ClientHeader>
<ns1:UserName>name</ns1:UserName>
<ns1:Password>pass</ns1:Password>
</ns1:ClientHeader>
</SOAP-ENV:Header>
Remainder snipped
有人有什么想法吗?
答案 0 :(得分:1)
您应该在设置ClientID
时设置ClientId