2

認証にカスタム ヘッダーを必要とする 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

誰にもアイデアはありますか?

4

1 に答える 1

1

ClientID を設定する必要があるときに ClientId を設定しています

于 2013-04-13T10:06:17.570 に答える