Heim Backend-Entwicklung PHP-Tutorial Wie debugge ich HTTP-Anfragen von PHP-Funktionen mit Guzzle Debugger?

Wie debugge ich HTTP-Anfragen von PHP-Funktionen mit Guzzle Debugger?

Apr 23, 2024 pm 02:06 PM
composer guzzle http 请求

如何用 Guzzle Debugger 调试 PHP 函数的 HTTP 请求?

Wie verwende ich Guzzle Debugger zum Debuggen von HTTP-Anfragen von PHP-Funktionen?

Guzzle Debugger ist ein leistungsstarkes Tool, das Ihnen Einblick in HTTP-Anfragen gibt, die innerhalb von PHP-Funktionen gestellt werden. Durch die Bereitstellung detaillierter Protokolle und Diagnoseinformationen hilft es dabei, Probleme im Zusammenhang mit Anfragen und Antworten zu identifizieren und zu lösen.

Guzzle Debugger installieren

composer require guzzle/debug
Nach dem Login kopieren

Guzzle Debugger aktivieren

Um Guzzle Debugger zu aktivieren, müssen Sie DebugPlugin zu hinzufügen, indem Sie <code>setDebug() </ verwenden. code> Methode GuzzleHttpClient in: setDebug() 方法将 DebugPlugin添加到 GuzzleHttpClient 中:

use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
use GuzzleHttp\Middleware\DebugMiddleware;

$handler = HandlerStack::create();
$handler-&gt;push(DebugMiddleware::log());

$client = new Client(['handler' =&gt; $handler]);
Nach dem Login kopieren

实战案例

下面是一个使用 Guzzle Debugger 调试 HTTP 请求的示例:

use GuzzleHttp\Client;

$client = new Client();
try {
    $response = $client-&gt;request('GET', 'https://example.com/api/v1/users');
    echo $response-&gt;getBody();
} catch (\Exception $e) {
    echo $e-&gt;getMessage();
}
// 输出调试日志
echo DebugMiddleware::log();
Nach dem Login kopieren

输出的调试日志将包含以下信息:

  • 请求 URI
  • 请求方法
  • HTTP 版本
  • 请求头
  • 请求体
  • 响应状态码
  • 响应头
  • 响应体

使用调试日志进行故障排除

调试日志可以帮助你识别以下问题:

  • 错误的请求方法或 URI
  • 缺失或无效的请求头
  • 无效的 JSON 请求体
  • 服务器端的错误响应

通过查看调试日志,你可以快速确定问题的根源并采取适当的措施来解决问题。

自定义日志级别

Guzzle Debugger 提供了多种日志级别,让你可以控制日志中包含的信息量。默认情况下,它使用 LOG_INFO,记录所有请求和响应信息。你可以使用 GuzzleHttpMiddlewareDebugMiddleware::setLevel()

DebugMiddleware::setLevel(DebugMiddleware::LOG_DEBUG);
Nach dem Login kopieren

Praktischer Fall

🎜🎜Das Folgende ist ein Beispiel für die Verwendung von Guzzle Debugger zum Debuggen von HTTP-Anforderungen: 🎜rrreee🎜Das Ausgabe-Debug-Protokoll enthält die folgenden Informationen: 🎜
  • Anfrage-URI
  • Anfragemethode
  • HTTP-Version
  • Anfrage-Header
  • Anfragetext
  • Antwortstatus Code
  • Antwortheader
  • Antworttext
🎜🎜Verwenden Sie Debug-Protokolle zur Fehlerbehebung🎜🎜🎜Debug-Protokolle können Ihnen dabei helfen, die folgenden Probleme zu identifizieren:🎜
  • Falsche Anforderungsmethode oder URI
  • Fehlende oder ungültige Anforderungsheader
  • Ungültiger JSON-Anforderungstext
  • Serverseitige Fehlerantwort
  • ul>🎜Passed Durch die Anzeige der Debug-Protokolle können Sie schnell die Ursache des Problems ermitteln und geeignete Schritte zur Behebung des Problems ergreifen. 🎜🎜🎜Benutzerdefinierte Protokollebenen🎜🎜🎜Guzzle Debugger bietet verschiedene Protokollebenen, sodass Sie die Menge der in den Protokollen enthaltenen Informationen steuern können. Standardmäßig verwendet es LOG_INFO, um alle Anfrage- und Antwortinformationen zu protokollieren. Sie können die Protokollebene mithilfe der Methode GuzzleHttpMiddlewareDebugMiddleware::setLevel() anpassen: 🎜rrreee🎜Dadurch werden detailliertere Debugging-Informationen protokolliert, einschließlich Fehlerrückverfolgung und interner PSR-7-Anforderungs- und Antwortobjekte. 🎜

Das obige ist der detaillierte Inhalt vonWie debugge ich HTTP-Anfragen von PHP-Funktionen mit Guzzle Debugger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Erweiterte Funktionen von Composer: Aliase, Skripte und Konfliktlösung Erweiterte Funktionen von Composer: Aliase, Skripte und Konfliktlösung Jun 03, 2024 pm 12:37 PM

Erweiterte Funktionen von Composer: Aliase, Skripte und Konfliktlösung

Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung May 08, 2024 pm 02:21 PM

Agile Entwicklung und Betrieb der PHP-Microservice-Containerisierung

PHP-Code-Versionskontrolle und Zusammenarbeit PHP-Code-Versionskontrolle und Zusammenarbeit May 07, 2024 am 08:54 AM

PHP-Code-Versionskontrolle und Zusammenarbeit

Was sind die gängigen Methoden zum Konvertieren von Arrays in Objekte in PHP? Was sind die gängigen Methoden zum Konvertieren von Arrays in Objekte in PHP? Apr 28, 2024 pm 10:54 PM

Was sind die gängigen Methoden zum Konvertieren von Arrays in Objekte in PHP?

Parallele Sortierung von PHP-Arrays: Nutzung von Multi-Core-CPUs zur Verbesserung der Leistung Parallele Sortierung von PHP-Arrays: Nutzung von Multi-Core-CPUs zur Verbesserung der Leistung Apr 27, 2024 am 10:03 AM

Parallele Sortierung von PHP-Arrays: Nutzung von Multi-Core-CPUs zur Verbesserung der Leistung

Wie verwende ich PHP CI/CD für eine schnelle Iteration? Wie verwende ich PHP CI/CD für eine schnelle Iteration? May 08, 2024 pm 10:15 PM

Wie verwende ich PHP CI/CD für eine schnelle Iteration?

Wie verwende ich den Redis-Cache bei der PHP-Array-Paginierung? Wie verwende ich den Redis-Cache bei der PHP-Array-Paginierung? May 01, 2024 am 10:48 AM

Wie verwende ich den Redis-Cache bei der PHP-Array-Paginierung?

Visualisierungstechnologie der PHP-Datenstruktur Visualisierungstechnologie der PHP-Datenstruktur May 07, 2024 pm 06:06 PM

Visualisierungstechnologie der PHP-Datenstruktur

See all articles