【Laravel】curlの代わりにGuzzleを使ってhttp通信する




この記事は最終更新日から2年以上経過しています。

Guzzle:PHPで利用できるHTTPクライアントパッケージです。
composerが利用できる環境なら簡単に利用できます。
今回はLaravelでの導入を紹介します。

Guzzleの読み方

読み方は毎回気になります(笑)
Google検索で単語の発音を聞くとカタカナで表現するならガズル。
意味は「がつがつ食います」ということでした。

Guzzleパッケージをインストール

方法1:composer.jsonに設定追加してupdateする

composer.jsonのrequireキーに以下の記述を追加します。

    "require": {
        "php": "^7.1.3",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.7.*",
        "laravel/tinker": "^1.0",
        "guzzlehttp/guzzle": "^6.3" ←ここを追加
    },

composer updateコマンドを実行します。
これでインストールは完了。

方法2:composer requireコマンドを実行する

composer require guzzlehttp/guzzle

インストールが完了すれば終わり。
composer.jsonにも設定が追加されます。

使い方

これだけでHTTP通信が実現できます。

$client = new \GuzzleHttp\Client();
$response = $client->request(
    'GET',
    $url,// URLを設定
    [ 'query' => $params]// パラメーターがあれば設定
);
echo $response->getStatusCode(); // 200
echo $response->getReasonPhrase(); // OK
echo $response->getProtocolVersion(); // 1.1
// レスポンスボディを取得
$responseBody = $response->getBody()->getContents();

参考

Packagist(guzzlehttp/guzzle)
https://packagist.org/packages/guzzlehttp/guzzle
ソースコード
https://github.com/guzzle/guzzle
ドキュメント
http://docs.guzzlephp.org/en/stable/