- GuzzleHttpのインストール: まず、Composerを使用してGuzzleHttpをインストールします。以下のコマンドを実行してください。
composer require guzzlehttp/guzzle
- 基本的なタイムアウトの設定:
タイムアウトを設定するには、
GuzzleHttp\Client
のインスタンスを作成し、timeout
オプションを指定します。以下は基本的な例です。
use GuzzleHttp\Client;
$client = new Client([
'timeout' => 5, // タイムアウトを5秒に設定
]);
$response = $client->get('http://example.com');
上記の例では、タイムアウトを5秒に設定しています。もしリクエストが5秒以上かかる場合、タイムアウトエラーが発生します。
- エラーハンドリング:
タイムアウトエラーが発生した場合、GuzzleHttpは
GuzzleHttp\Exception\RequestException
をスローします。この例外をキャッチして、適切なエラーハンドリングを行うことができます。
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
try {
$client = new Client([
'timeout' => 5,
]);
$response = $client->get('http://example.com');
} catch (RequestException $e) {
if ($e->hasResponse()) {
$statusCode = $e->getResponse()->getStatusCode();
// エラーレスポンスの処理
} else {
// タイムアウトエラーの処理
}
}
上記の例では、hasResponse()
メソッドを使用して、エラーレスポンスがあるかどうかを確認しています。エラーレスポンスが存在する場合、ステータスコードを取得して適切な処理を行います。エラーレスポンスがない場合は、タイムアウトエラーとして処理します。