2024 年日本 PHP 研討會

SoapClient::__getLastRequest

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastRequest返回最後一個 SOAP 請求

說明

public SoapClient::__getLastRequest(): ?string

返回在最後一個 SOAP 請求中發送的 XML。

注意事項:

此方法僅在使用 `trace` 選項設為 **`true`** 建立 SoapClient 物件時有效。

參數

此函式沒有參數。

回傳值

最後一次 SOAP 請求,以 XML 字串形式返回。

範例

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

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

參見

新增註解

使用者貢獻的註解 5 則註解

匿名
14 年前
加入 htmlentities() 會很有幫助,因為它可以讓 XML 直接在瀏覽器中顯示,而無需查看原始碼。

<?php

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

?>
hejdavladislav at gmail dot com
8 年前
請注意,當您建立 SoapClient 時,如果將 "trace" 選項設定為 FALSE 或省略它,則 "__getLastRequest()" 永遠會返回 NULL。
Ersin DOGAN
15 年前
我猜很多人呼叫 getLastRequest 後卻沒有任何回傳值。「我的最後一次請求在哪裡?」。現在我們將看到我們的請求,當您建立 SoapClient 實例時,您應該提供一個選項參數,如下所示

<?php
// 下方 $option=array('trace',1);
// 正確的寫法如下
$option=array('trace'=>1);

$client=new SoapClient('some.wsdl',$option);

try{
$client->aMethodAtRemote();
}catch(
SoapFault $fault){
// <xmp> 標籤會在 html 中顯示 xml 輸出
echo '請求 : <br/><xmp>',
$client->__getLastRequest(),
'</xmp><br/><br/> 錯誤訊息 : <br/>',
$fault->getMessage();
}
?>

參數 "trace" 可以輸出請求。現在,您應該可以看到 SOAP 請求了。
mayurvirkar at gmail dot com
11 年前
只是為了讓它更易讀

echo "請求:\n" . htmlentities(str_ireplace('><', ">\n<", $client->__getLastRequest())) . "\n";
echo "回應:\n" . htmlentities(str_ireplace('><', ">\n<", $client->__getLastResponse())) . "\n";

備註:如果您使用 \n,則需要將上述語句括在 <pre> 中。您也可以使用 <br />,但它會變得有點雜亂。
LZhang
10 年前
我的方法是建立一個 xml 檔案並連結到該檔案。

$outputxml = '/output.xml';

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

echo '<a href="' . $outputxml . '">這裡</a>';
To Top