©
This document uses PHP Chinese website manual Release
(PHP 5 >= 5.0.1)
SoapClient::__getLastResponse — Returns last SOAP response
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" ;
?>
[#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