Два простых PHP SOAP setHeaders Вопросы - PullRequest
0 голосов
/ 29 сентября 2010

Вот код, который я использую для генерации заголовков запроса:

$headers = array(
                  new SOAPHEADER($this->_ns,'username',$this->_username,false, $this->_actor),
                  new SOAPHEADER($this->_ns,'password',$this->_password,false, $this->_actor));

$this->_client->__setSOAPHeaders($headers);

Это генерирует:

<SOAP-ENV:Header>
  <ns2:username SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:username>
  <ns2:password SOAP-ENV:actor="http://schemas.xmlsoap.org/soap/actor/next">test</ns2:password>
</SOAP-ENV:Header>

Все нормально и прекрасно.

Вот два моих вопроса:

Документ API требует, чтобы имя пользователя было ns1: имя пользователя , а пароль - ns2: пароль .Мои оба ns2.Прежде всего, каково значение ns1 | 2?Как я могу это исправить?

Второй вопрос заключается в том, есть ли способ получить такой же результат, вызывая SOAPHEADER () только один раз?

1 Ответ

0 голосов
/ 29 сентября 2010
  1. Не легко сказать, имеет ли значение пространство имен, не видя объявления и не зная службы, но обычно принимающая служба ищет только теги в этом конкретном пространстве имен. Когда вы добавите $this->_ns к ним обоим, они будут одинаковыми. Вы должны будете предоставить правильное пространство имен самостоятельно (префикс не имеет значения, ури делает).
  2. Зачем вам нужен только 1 звонок?
...