©
This document uses PHP Chinese website manual Release
(PHP 5 >= 5.0.1)
SoapClient::__getLastRequest — Returns last SOAP request
Returns the XML sent in the last SOAP request.
Note:
This method works only if the SoapClient object was created with the trace option set to
TRUE
.
此函数没有参数。
The last SOAP request, as an XML string.
Example #1 SoapClient::__getLastRequest() example
<?php
$client = new SoapClient ( "some.wsdl" , array( 'trace' => 1 ));
$result = $client -> SomeFunction ();
echo "REQUEST:\n" . $client -> __getLastRequest () . "\n" ;
?>
[#1] LZhang [2014-07-11 08:22:12]
Creating an xml file and link to the file is my way.
$outputxml = '/output.xml';
file_put_contents($_SERVER['DOCUMENT_ROOT'] . $outputxml, $client->__getLastRequest());
echo '<a href="' . $outputxml . '">here</a>';
[#2] mayurvirkar at gmail dot com [2013-09-09 08:37:22]
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.
[#3] Anonymous [2010-01-26 13:32:57]
Adding htmlentities() can be helpful since it makes the XML visible in your browser without needing to view the source.
<?php
echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";
?>
[#4] Ersin DOGAN [2009-04-12 10:40:44]
I guess many peoples calls getLastRequest and it returns nothing. "Heey where is the my last request". Now we will see our request, when you created a SoapClient instance, you should give a option parameter as below :
<?php
// below $option=array('trace',1);
// correct one is below
$option=array('trace'=>1);
$client=new SoapClient('some.wsdl',$option);
try{
$client->aMethodAtRemote();
}catch(SoapFault $fault){
// <xmp> tag displays xml output in html
echo 'Request : <br/><xmp>',
$client->__getLastRequest(),
'</xmp><br/><br/> Error Message : <br/>',
$fault->getMessage();
}
?>
"trace" parameter enables output of request. Now, you should see SOAP request.
[#5] Omar Nabil [2008-11-12 06:14:02]
the getLastResult function doesn't require that the server answers.
as my browser handled and hided the xml code I thought the function doesn't return the last request