2024 年 PHP 日本研討會

SoapClient::__getLastResponse

(PHP 5, PHP 7, PHP 8)

SoapClient::__getLastResponse返回最後一個 SOAP 回應

說明

public SoapClient::__getLastResponse(): ?string

返回在最後一個 SOAP 回應中收到的 XML。

注意:

只有在使用 trace 選項設為 true 的情況下建立 SoapClient 物件時,此方法才有效。

參數

此函式沒有參數。

返回值

最後一個 SOAP 回應,以 XML 字串形式返回。

範例

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

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

另請參閱

新增筆記

使用者貢獻的筆記 3 則筆記

ceo at l-i-e dot com
18 年前
糟糕!
該範例需要
$soapClient = new SoapClient($url, array('trace'=>1));
才能開啟追蹤功能。
ceo at l-i-e dot com
18 年前
您幾乎肯定需要在 SOAP 呼叫周圍加上 try/catch 區塊,才能使用這些來除錯無法正常運作的程式碼。

否則,PHP 會在您執行此函式之前拋出致命錯誤。

例如
<?php
$soapClient
= new SoapClient($url);
echo
htmlentities($soapClient->__getFunctions());
//假設已輸出 'someFunction' (以及其他函式)
try {
$results = $soapClient->someFunction(...);
}
catch (
SoapFault $soapFault) {
var_dump($soapFault);
echo
"請求 :<br>", htmlentities($soapClient->__getLastRequest()), "<br>";
echo
"回應 :<br>", htmlentities($soapClient->__getLastResponse()), "<br>";
}
?>

如果沒有 try/catch,您只會收到致命錯誤,而 PHP 會在您呼叫 __getLastRequest/__getLastResponse 之前自行終止。
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 />,但這樣會有點雜亂。
To Top