PHP SoapClient и создание заголовка
Я пытаюсь создать собственный заголовок с помощью PHP SOAP CLient, который будет выглядеть так
<soap:Header>
<AuthorizationToken xmlns="http://www.avectra.com/OnDemand/2005/">
<Token>string</Token>
</AuthorizationToken> </soap:Header>
Мой код выглядит так:
$client = new SoapClient("http://nftpsandbox.avectra.com/xweb/netFORUMXMLONDemand.asmx?WSDL",array("trace" => 1));
try {
$header = new SoapHeader('http://www.avectra.com/OnDemand/2005/', 'AuthorizationToken', $token, false);
$client->__setSoapHeaders(array($header));
$result = $client->CheckEWebUser(array('szEmail' => $userName , 'szPassword' => $password));
}
catch (SoapFault $result)
{
echo $result->faultstring;
}
catch (Exception $result){
}
Но заголовок запроса, который я получаю, выглядит так:
<SOAP-ENV:Header>
<ns1:AuthorizationToken>
<ns1:Token></ns1:Token>
</ns1:AuthorizationToken>
</SOAP-ENV:Header>
Любая идея, почему узел Token пуст, когда $token
имеет значение?
1 ответ
Решение
С SimpleXMLLement трудно справиться, попробуйте передать простой экземпляр stdClass
$auth = new stdClass();
$auth->Token = '123';
$header = new SoapHeader('http://www.avectra.com/OnDemand/2005/', 'AuthorizationToken', $auth, false);