Wie gehe ich mit nicht behandelten Ausnahmen in Guzzle beim Testen von APIs um?

Patricia Arquette
Freigeben: 2024-11-02 06:27:02
Original
916 Leute haben es durchsucht

How to Handle Unhandled Exceptions in Guzzle When Testing APIs?

Unbehandelte Ausnahmen mit Guzzle lösen

Das Abfangen von Ausnahmen beim Testen von APIs mit Guzzle kann eine Herausforderung sein. Dieser Artikel befasst sich mit diesem Problem und bietet Lösungen zum Abrufen von Antworten mit Nicht-200-HTTP-Codes.

Im Beispielcode werden Ereignis-Listener verwendet, um bestimmte HTTP-Codes zu verarbeiten, es werden jedoch weiterhin Ausnahmen ausgelöst. Um dieses Problem zu lösen, besteht eine Möglichkeit darin, Ausnahmen anhand des HTTP-Statuscodes zu behandeln.

Ausnahmen anhand des HTTP-Statuscodes behandeln

Für Guzzle 3 und Guzzle 5.3 ermöglicht das Deaktivieren von Ausnahmen die manuelle Behandlung aller Status Codes. Setzen Sie einfach 'Exceptions' => false in den Client-Optionen.

Guzzle 3

$client = new \Guzzle\Http\Client($httpBase, array(
  'request.options' => array(
     'exceptions' => false,
   )
));
Nach dem Login kopieren

Guzzle 5.3

$client = new \GuzzleHttp\Client(['defaults' => [ 'exceptions' => false ]] );
Nach dem Login kopieren

Mit deaktivierten Ausnahmen, Der HTTP-Statuscode kann direkt aus der Antwort abgerufen werden.

$response = $request->send();
$statuscode = $response->getStatusCode();
Nach dem Login kopieren

Erwartete Statuscodes kann entsprechend gehandhabt werden:

if (200 === $statuscode) {
 // Do something
}
elseif (304 === $statuscode) {
  // Nothing to do
}
elseif (404 === $statuscode) {
  // Clean up DB or something like this
}
else {
  throw new MyException("Invalid response from api...");
}
Nach dem Login kopieren

Guzzle 6

In Guzzle 6 verwenden Sie 'http_errors' => false in den Client-Optionen:

$client = new \GuzzleHttp\Client(['http_errors' => false]);
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie gehe ich mit nicht behandelten Ausnahmen in Guzzle beim Testen von APIs um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!