Как сделать PHP SOAP Header похожим на этот фрагмент XML?

Я пытаюсь сделать мыльный заголовок, который бы выглядел так:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<a-user xmlns="a">testName</a-user>
<a-pass xmlns="a">testPassword</a-pass>
</s:Header>
<s:Body>
...
</s:Body>
</s:Envelope>

Я довольно новичок в мыле, так что я почти уверен, что просто не понимаю, что я должен вставить для параметров конструктора SoapHeader, это то, что я сейчас пытаюсь, и он не может пройти проверку подлинности:

        $authHeader = new SoapHeader("http://schemas.xmlsoap.org/soap/envelope/", "Envelope", array("Header" => array("a-user" => "testName", "a-pass" => "testPassword")));

Может кто-нибудь объяснить, как я должен перевести этот заголовок из XML в php soapheader, пожалуйста?

Изменить: Да, agunn, я использую реальное имя пользователя и пароль, я получаю исключения SoapFault, говоря «Поставщик не авторизован!» когда я делаю мой soapCall.

Вот включенная часть мыльного вызова:

$this->client->__setSoapHeaders($authHeader);
$response = $this->client->__soapCall("Foo", $params);

0

Решение

$authHeader = new SoapHeader("http://schemas.xmlsoap.org/soap/envelope/", "Envelope", array("Header" => array("a-user" => "testName", "a-pass" => "testPassword")));

Согласно спецификации SoapClient, вы должны попробовать вот так

$this->client->__setSoapHeaders(array($authHeader));
$response = $this->client->__soapCall("Foo", $params);
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]