文字

SoapClient::__getLastRequest

(PHP 5 >= 5.0.1)

SoapClient::__getLastRequestReturns last SOAP request

说明

public string SoapClient::__getLastRequest ( void )

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

参见

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

用户评论:

[#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

上一篇: 下一篇: