2012-12-25 9 views
34

soapクライアントを使用するコードをデバッグする必要があります。私はphp.netにGetLastの*方法を見つけましたが、私はデバッグのために最後の要求を取得しようとすると、それがNULLSoapClientのデバッグ要求をダンプする方法は?

<?php 

    $client = new SoapClient("http://www.webservicex.net/ConverPower.asmx?WSDL"); 

    $response = $client->ChangePowerUnit(array(
     "PowerValue" => 100, 
     "fromPowerUnit" => "horsepower", 
     "toPowerUnit" => "megawatts" 
    )); 


    echo "====== REQUEST HEADERS =====" . PHP_EOL; 
    var_dump($client->__getLastRequestHeaders()); 
    echo "========= REQUEST ==========" . PHP_EOL; 
    var_dump($client->__getLastRequest()); 
    echo "========= RESPONSE =========" . PHP_EOL; 
    var_dump($response); 

?> 

コード実行の結果を返します:

体の内容を取得する方法
$php soap_test.php 

====== REQUEST HEADERS ===== 
NULL 
========= REQUEST ========== 
NULL 
========= RESPONSE ========= 
object(stdClass)#2 (1) { 
    ["ChangePowerUnitResult"]=> 
    float(0.0746) 
} 

を最後のSoapClientリクエストのヘッダ?

答えて

43

These functionsのSoapClientオブジェクトがTRUEに設定されたトレースオプションでを作成された場合にのみ機能します。

試してみてください。

$client = new SoapClient("http://www.webservicex.net/ConverPower.asmx?WSDL", array('trace' => 1)); 
+2

@xdazzが正しいですが、私は非常にあなたが呼び出しにあなたを見ることができるので、またのSoapClientメソッドのパラメータに=> 0''' '' '「例外」を追加することをお勧めします誤った返答を受けたとしても再作成します。 – Dragon54

関連する問題