文字

SoapClient::__getLastResponse

(PHP 5 >= 5.0.1)

SoapClient::__getLastResponseReturns last SOAP response

说明

public string SoapClient::__getLastResponse ( void )

Returns the XML received in the last SOAP response.

Note:

This method works only if the SoapClient object was created with the trace option set to TRUE .

参数

此函数没有参数。

返回值

The last SOAP response, as an XML string.

范例

Example #1 SoapClient::__getLastResponse() example

<?php
$client 
SoapClient ( "some.wsdl" , array( 'trace'  =>  1 ));
$result  $client -> SomeFunction ();
echo 
"Response:\n"  $client -> __getLastResponse () .  "\n" ;
?>

参见

  • SoapClient::__getLastResponseHeaders() - Returns the SOAP headers from the last response
  • SoapClient::__getLastRequest() - Returns last SOAP request
  • SoapClient::__getLastRequestHeaders() - Returns the SOAP headers from the last request

用户评论:

[#1] mayurvirkar at gmail dot com [2013-09-09 08:38:43]

Just to make it a bit more readable

echo "REQUEST:\n" . htmlentities(str_ireplace('><', ">\n<", $client->__getLastRequest())) . "\n";
echo "RESPONSE:\n" . htmlentities(str_ireplace('><', ">\n<", $client->__getLastResponse())) . "\n";

PS: If you are using \n then you need to enclose above statements in <pre>. You can also use <br />, but it gets a bit messy.

[#2] bshafs at gmail dot com [2011-06-22 12:45:09]

You don't need to surround SoapClient in a try-catch block.  Just set the "exceptions" option to false, and the SoapFault instance will be returned instead of thrown.

[#3] ceo at l-i-e dot com [2006-01-04 13:31:46]

D'oh!
That example needs:
$soapClient = new SoapClient($url, array('trace'=>1));
to turn ON tracing in the first place.

[#4] ceo at l-i-e dot com [2006-01-04 13:30:00]

You almost for sure will need to wrap a try/catch block around your SOAP call in order to use these to debug something that's not working.

Otherwise, PHP throws a fatal error before you can execute this function.

For example:
<?php
    $soapClient 
= new SoapClient($url);
    echo 
htmlentities($soapClient->__getFunctions());
    
//Assume that has output 'someFunction' (among others)
    
try {
        
$results $soapClient->someFunction(...);
    }
    catch (
SoapFault $soapFault) {
        
var_dump($soapFault);
        echo 
"Request :<br>"htmlentities($soapClient->__getLastRequest()), "<br>";
        echo 
"Response :<br>"htmlentities($soapClient->__getLastResponse()), "<br>";
    }
?>


Without try/catch, your just get the Fatal Error and PHP commits suicide before you can call __getLastRequest/__getLastResponse

上一篇: 下一篇: