SOAP-запрос с данными заголовка - PullRequest
1 голос
/ 31 октября 2011

Я пытаюсь подключиться к службе WCF из PHP с помощью класса SoapClient.Я могу успешно подключиться и пройти через API с помощью WCFStorm, однако не могу правильно построить данные заголовка для аутентификации из SoapClient.Рабочий запрос WCF будет выглядеть следующим образом:

<MyMethod>
  <OutgoingHeaders attr0="MsgHeaderArray" isNull="false">
    <MsgHeaderArray0>
      <Name>ApiKey</Name>
      <Namespace>http://www.service.com/namespace</Namespace>
      <ItemType>System.String</ItemType>
      <Value>ABC123</Value>
      <Direction>Outgoing</Direction>
    </MsgHeaderArray0>
  </OutgoingHeaders>
  <MethodParameters>
    <colour>Red</colour>
    <size>Large</size>
  </MethodParameters>
</MyMethod>

Код, который я использую для подключения к API и вызова метода:

$params = array(
  'colour' => 'Red', 
  'size' => 'Large'
);

$service = new SoapClient('http://www.service.com/service.svc?wsdl');
$header = new SoapHeader('http://www.service.com/namespace', 'ApiKey', 'ABC123', FALSE);
$service->__setSoapHeaders(array($header));

$service->MyMethod($params);

Однако я получаюошибка доступа запрещена, я полагаю, потому что SoapHeader отформатирован неправильно?

SoapFault: Access is denied. in SoapClient->__call()

Спасибо за любую помощь, которую вы можете предоставить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...