【PHP】Guzzleを利用し外部データを取得する例|APIを利用する場合など

PHPでは、APIを利用する場合など、外部データを取得する際にfile_get_contents関数やcURL(カール)が利用できますが、今回は、 HTTPクライアントのGuzzleを使い外部データを取得する例となります。

【PHP】Guzzleを利用し外部データを取得する例

GuzzleをComposerでインストール

例では、PHPライブラリの依存関係を管理するComposerでGuzzleをインストールします。

以下、インストールするをコマンドとなります。

composer require guzzlehttp/guzzle

また、ComposerをMacで利用する方法については、以下のリンク先を参考にしてみてください。

Guzzleの利用例

以下、Guzzleを利用して外部データを取得する例となります。

// Guzzleを利用するためComposerのautoload.phpを読み込み
require 'vendor/autoload.php';
// Clientクラスをインポート
use GuzzleHttp\Client;

// Clientクラスのインスタンスを作成
$client = new Client();

// リクエストを送信してレスポンスを取得
$response = $client->request('GET', 'https://XXXXXXXX');

// レスポンスから本文を取得する場合
$response->getBody()->getContents();

リクエストを送信するClientクラスのrequestメソッドでは、第1引数にHTTPメソッドを指定し、第2引数にリクエストURLを指定します。また、第3引数にはリクエストオプションを指定できます。

SSL証明書の検証によりリクエストがエラーとなる場合

ローカルのテスト環境でGuzzleを利用してリクエストを送信する際に、SSL証明書の検証を求められて、エラーとなる場合があるかもしれません。

その場合は、リクエスト送信時に次のオプションを指定することで、SSL証明書の検証を無効にできます。

$client->request('GET', 'http://XXXXXXXX', ['verify' => false]);

また、リクエストオプションはインスタンス作成時に次のように指定することもできます。

new Client(['verify' => false])

その他の利用例やリクエストオプションについて

以上がGuzzleを利用して外部データを取得する例となります。

また、Guzzleでは非同期通信や例外処理の実装なども行えます。Guzzleの利用方法の詳細や、その他のリクエストオプションなどについては、以下の参考サイト内を確認してみてください。

参考サイトなど

コメント投稿またはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。
Twitterで返信する場合はこちらから。

また、コメントは承認制となります。