0

ソープ コールを作成するために問題が発生しています。ご覧のとおり、サードパーティのクライアントから提供されているヘッダーにはヘッダー名がありません。ヘッダーに名前がない SOAP リクエストにユーザー名とパスワードを渡して、SOAP 呼び出しを作成する必要があります。いくつかの例を試しましたが、成功しませんでした。以下の呼び出しは SOAP UI で機能しますが、PHP に関しては深刻な問題があります。どんな助けでも大歓迎です

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:int="http://namespace.example.com/">
   <soapenv:Header>
      <int:password>123</int:password>
      <int:login>abc</int:login>
   </soapenv:Header>
   <soapenv:Body>
      <int:getEventTree>
         <!--Optional:-->
         <lang>en</lang>
      </int:getEventTree>
   </soapenv:Body>
</soapenv:Envelope>
4

1 に答える 1

0

http://php.net/manual/en/soapclient.dorequest.phpをご覧ください。

次のようなコードを使用できます。

$response = $soapClient->__doRequest(
    $request,
    $endpoint,
    $soapAction,
    $soapVersion,
    $one_way       
);

$request は、次のような xml を含む文字列として定義できます。

$request = 
'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/""xmlns:int="http://namespace.example.com/">
    <soapenv:Header>
        <int:password>123</int:password>
        <int:login>abc</int:login>
    </soapenv:Header>
    <soapenv:Body>
        <int:getEventTree>
            <!--Optional:-->
            <lang>en</lang>
        </int:getEventTree>
    </soapenv:Body>
</soapenv:Envelope>';

構成に応じて、__doRequest() 呼び出しで残りの引数を定義できます。

于 2013-03-12T19:01:16.627 に答える