如何用 Guzzle Debugger 調試 PHP 函數的 HTTP 請求?
Guzzle Debugger 是一個功能強大的工具,它可以讓你深入了解 PHP 函數中發出的 HTTP 請求。通過提供詳細的日志和診斷信息,它有助于識別并解決與請求和響應相關的任何問題。
安裝 Guzzle Debugger
<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15906.html" target="_blank">composer</a> require guzzle/debug
登錄后復制
啟用 Guzzle Debugger
為了啟用 Guzzle Debugger,你需要使用 setDebug()
方法將 DebugPlugin
添加到 GuzzleHttp\Client
中:
use GuzzleHttp\Client; use GuzzleHttp\HandlerStack; use GuzzleHttp\Middleware\DebugMiddleware; $handler = HandlerStack::create(); $handler->push(DebugMiddleware::log()); $client = new Client(['handler' => $handler]);
登錄后復制
實戰案例
下面是一個使用 Guzzle Debugger 調試 HTTP 請求的示例:
use GuzzleHttp\Client; $client = new Client(); try { $response = $client->request('GET', 'https://example.com/api/v1/users'); echo $response->getBody(); } catch (\Exception $e) { echo $e->getMessage(); } // 輸出調試日志 echo DebugMiddleware::log();
登錄后復制
輸出的調試日志將包含以下信息:
請求 URI請求方法HTTP 版本請求頭請求體響應狀態碼響應頭響應體
使用調試日志進行故障排除
調試日志可以幫助你識別以下問題:
錯誤的請求方法或 URI缺失或無效的請求頭無效的 JSON 請求體服務器端的錯誤響應
通過查看調試日志,你可以快速確定問題的根源并采取適當的措施來解決問題。
自定義日志級別
Guzzle Debugger 提供了多種日志級別,讓你可以控制日志中包含的信息量。默認情況下,它使用 LOG_INFO
,記錄所有請求和響應信息。你可以使用 GuzzleHttp\Middleware\DebugMiddleware::setLevel()
方法自定義日志級別:
DebugMiddleware::setLevel(DebugMiddleware::LOG_DEBUG);
登錄后復制
這將記錄更多詳細的調試信息,包括錯誤追溯和內部 PSR-7 請求和響應對象。