Comment détecter les exceptions de Guzzle ?

Mary-Kate Olsen
Libérer: 2024-11-01 09:48:30
original
155 Les gens l'ont consulté

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,
   )
));
Copier après la connexion

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 ]] );
Copier après la connexion

Guzzle 6 :

$client = new \GuzzleHttp\Client(['http_errors' => false]);
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!