0

私はこれに24時間以上立ち往生しています。オンラインで見つけた情報は、私の要件とは関係ありません。基本的に、サーバーに送信する前に XML を編集する必要があります。ただし、wsdl ファイルでこれを行う方法がわかりません。送信する前にxmlを編集する必要があります。オンラインの調査では、これらのパラメーターが示されています。

request - XML SOAP リクエスト。location - リクエストする URL。action - SOAP アクション。version - SOAP バージョン。

私はこれを使用しています。

$response = $client->__doRequest('','http://hiddenlink','myMethod','1');
echo $response;

wsdl ファイルを使用する場合の要求は何ですか。

4

1 に答える 1

2

SOAPリクエストで送信する必要があるヘッダーを変更するソリューションを探していましたが、__doRequestを拡張することで解決しました。

    class MSSoapClient extends SoapClient {

      function __doRequest($request, $location, $action, $version) {
        $header = '<SOAP-ENV:Header>
        <ns1:AuthenticationHeader>
        <ns1:Username>XXXX</ns1:Username>
        <ns1:Password>XXXX</ns1:Password>
        <ns1:Function>XXX</ns1:Function>
        <ns1:TimeOutMilliSec>4000</ns1:TimeOutMilliSec>
        </ns1:AuthenticationHeader>
        </SOAP-ENV:Header><SOAP-ENV:Body>';
        $request = str_replace('<SOAP-ENV:Body>', $header, $request);

        return parent::__doRequest($request, $location, $action, $version);
      }

$client = new MSSoapClient($wsdl, array('trace' => 1, "exceptions" => 0, 'use' => SOAP_LITERAL));
于 2014-11-13T12:37:22.960 に答える