2012-12-25 8 views
34

Ho bisogno di eseguire il debug di un codice che usa il soap client. Ho trovato metodi GetLast * a php.net, ma quando provo ad ottenere ultima richiesta per il debug restituisce NULLCome scaricare la richiesta SoapClient per il debug?

<?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); 

?> 

Il risultato di esecuzione di codice:

$php soap_test.php 

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

Come ottenere il contenuto del corpo e le intestazioni dell'ultima richiesta di SoapClient?

risposta

43

These functions funziona solo se l'oggetto è stato creato SoapClient con l'opzione di traccia impostata su TRUE.

Prova:

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

Anche se è corretto @xdazz Consiglio vivamente di aggiungere anche '' ' "eccezioni"=> 0''' ai parametri nel metodo SoapClient in modo da poter visualizzare la chiamata stai facendo anche se ricevi una risposta errata. – Dragon54

Problemi correlati