ホームページ >バックエンド開発 >PHPチュートリアル >Guzzle から例外をキャッチするにはどうすればよいですか?

Guzzle から例外をキャッチするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-01 09:48:30241ブラウズ

How to Catch Exceptions from Guzzle?

Guzzle からの例外のキャッチ

はじめに

Guzzle を使用して API をテストする場合、例外の処理は次のとおりです。これは、信頼性が高く有益なエラー報告を保証するために非常に重要です。ただし、未処理の例外エラーが続く可能性があるため、Guzzle 内で例外をキャッチするのは難しい場合があります。

Guzzle 3

Guzzle から例外をキャッチするには、次の手順に従います。

  1. テストを try/catch でラップするブロック。
  2. Guzzle ドキュメントの説明に従って、クライアントのイベント ディスパッチャーにイベント リスナーを追加します。
  3. イベント リスナー内で、特定の HTTP 応答コード (例: 401、400) を置き換えて処理します。応答オブジェクトを新しいものに置き換え、それ以上のオブジェクトを防止するpropagation.

トラブルシューティング

それでも未処理の例外エラーが発生する場合は、クライアント作成プロセスを変更して Guzzle の例外を無効にしてみてください。 Guzzle 3 の場合:

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

これにより、例外をスローせずにすべての HTTP ステータス コードを取得できます。

Guzzle 5.3 および Guzzle 6

ガズル用5.3Guzzle 6 では手順が少し異なります:

Guzzle 5.3:

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

Guzzle 6:

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

HTTP 応答コードの処理

例外が無効になったら、応答オブジェクトの getStatusCode() メソッドを使用して HTTP 応答を取得できます。コード。成功の場合は 200、変更なしの場合は 304、見つからない場合は 404 など、予期されるコードを適切に処理します。予期しないコードが発生した場合は、カスタム例外をスローすることを検討してください。

以上がGuzzle から例外をキャッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。