Maison  >  Article  >  développement back-end  >  Comment détecter les exceptions de Guzzle ?

Comment détecter les exceptions de Guzzle ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 09:48:30156parcourir

How to Catch Exceptions from Guzzle?

Détecter les exceptions de Guzzle

Introduction

Lors du test des API à l'aide de Guzzle, la gestion des exceptions est crucial pour garantir un rapport d’erreurs fiable et informatif. Cependant, détecter les exceptions dans Guzzle peut parfois s'avérer difficile, car des erreurs d'exception non gérées peuvent persister.

Guzzle 3

Pour détecter les exceptions de Guzzle, suivez ces étapes :

  1. Enveloppez vos tests dans un bloc try/catch.
  2. Ajoutez un écouteur d'événement au répartiteur d'événements du client, comme décrit dans la documentation Guzzle.
  3. Dans l'écouteur d'événement. , gérez les codes de réponse HTTP spécifiques (par exemple, 401, 400) en remplaçant l'objet de réponse par un nouveau et en empêchant toute propagation ultérieure.

Dépannage

Si vous rencontrez toujours des erreurs d'exception non gérées, essayez de désactiver les exceptions pour Guzzle en modifiant le processus de création de client. Pour Guzzle 3 :

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

Cela vous permettra de récupérer tous les codes d'état HTTP sans lever d'exceptions.

Guzzle 5.3 et Guzzle 6

Pour Guzzle 5.3 et Guzzle 6, la procédure est légèrement différente :

Guzzle 5.3 :

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

Guzzle 6 :

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

Gestion des codes de réponse HTTP

Une fois les exceptions désactivées, vous pouvez utiliser l'objet de réponse Méthode getStatusCode() pour récupérer le code de réponse HTTP. Gérez les codes attendus en conséquence, par exemple 200 pour succès, 304 pour aucun changement ou 404 pour non trouvé. Si un code inattendu est rencontré, envisagez de lancer une exception personnalisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn