3

読んだあと:

リクエストを送信する前/送信せずに、PHP SoapClient 呼び出しによって作成された XML を検査します

そして、この記事のコードを使用して:

PHP SOAP が送信したい XML を送信する前にプレビューできますか?

ターゲット URL に送信せずに、Soap リクエストの XML 本文を正常にプレビューできました。デバッグに最適です。

ヘッダーも取得しようとしています。xmlを送信する前にそれは可能ですか?

これが私がこれまでに取り組んできたことです:

<?php
class DebugSoapClient extends SoapClient {
  public $sendRequest = true;
  public $echoRequest = false;
  public $formatXML = false;

  public function __doRequest($request, $location, $action, $version, $one_way=0) {
    if ( $this->echoRequest ) {

      if ( !$this->formatXML ) {
        $out = $request;
      } else {
        $doc = new DOMDocument;
        $doc->preserveWhiteSpace = false;
        $doc->loadxml($request);
        $doc->formatOutput = true;
        $out = $doc->savexml();
      }
      echo $out;
    }
    // if I want to send the request
    if ( $this->sendRequest ) {
      return parent::__doRequest($request, $location, $action, $version, $one_way);
    }
    else {
      return '';
    }
  }
}

$wsdlfile = 'http://www.w3schools.com/webservices/tempconvert.asmx?WSDL';
$client = new DebugSoapClient($wsdlfile, array('trace' => 1));
$client->sendRequest = false;
$client->echoRequest = true;
$client->formatXML = true;

$parameter = array('Fahrenheit'=>'100');
$res = $client->FahrenheitToCelsius($parameter);
var_dump($res);

// echo $client->__getLastRequestHeaders(); // this isn't working as expected

?>

追加しようとしました__getLastRequestHeaders()が、期待した結果が得られません。

4

0 に答える 0