SoapClient::__getLastRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastRequest返回最后一个 SOAP 请求

描述

public SoapClient::__getLastRequest(): ?string

返回最后一个 SOAP 请求中发送的 XML。

注意:

此方法仅在 SoapClient 对象创建时将 trace 选项设置为 true 时有效。

参数

此函数没有参数。

返回值

最后一个 SOAP 请求,作为 XML 字符串。

示例

示例 #1 SoapClient::__getLastRequest() 示例

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

参见

添加注释

用户贡献注释 6 个注释

匿名
14 年前
添加 htmlentities() 可能会有所帮助,因为它使 XML 在您的浏览器中可见,而无需查看源代码。

<?php

echo "REQUEST:\n" . htmlentities($client->__getLastRequest()) . "\n";

?>
hejdavladislav at gmail dot com
7 年前
请注意,当您使用 "trace" 选项设置为 FALSE 或省略它创建 SoapClient 时,"__getLastRequest()" 始终返回 NULL。
Ersin DOGAN
15 年前
我猜很多人都调用 getLastRequest,它什么也不返回。 "嘿,我的最后一个请求在哪里"。现在我们将看到我们的请求,当您创建一个 SoapClient 实例时,您应该像下面这样给出选项参数

<?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" 参数启用请求的输出。现在,您应该看到 SOAP 请求。
mayurvirkar at gmail dot com
10 年前
为了使它更具可读性

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

PS:如果您使用 \n,则需要将上述语句放在 <pre> 中。您也可以使用 <br />,但它会有点乱。
LZhang
10 年前
创建 xml 文件并链接到该文件是我的方法。

$outputxml = '/output.xml';

file_put_contents($_SERVER['DOCUMENT_ROOT'] . $outputxml, $client->__getLastRequest());

echo '<a href="' . $outputxml . '">here</a>';
Omar Nabil
15 年前
getLastResult 函数不需要服务器回答。
由于我的浏览器处理并隐藏了 xml 代码,我以为该函数没有返回最后一个请求
To Top