1
1

HTTPクライアントGuzzle

Last updated at Posted at 2024-04-15

はじめに

HTTPクライアントであるGuzzleについて整理する。

HTTP通信の基本

指定したアドレスにアクセスして取得したファイルをテキスト表示する。

http_basic.php
require '../vendor/autoload.php';

$cli = new GuzzleHttp\Client([
    'base_uri' => 'http://localhost:8000',
]);

$res = $cli->request('GET', '/sample.txt');
print $res->getBody();

autoload.phpをインポートする

autoload.phpはライブラリを自動ロードするためのコード。
Composerでインストールしたライブラリを使う際はあらかじめautoload.phpをインポートしておく。

GuzzleHttp\Clientオブジェクトを生成する

GuzzleHttp\ClientはGuzzleの中核とも言うべきクラス。
HTTP通信そのものを管理する。
コンストラクターには「オプション名 => 値」の形式で、動作オプションを指定できる。

リクエストを送信する

実際にリクエストを準備するのは、requestメソッドの役割。

Client::request(string $method [, string $uri [, array $options]]) : ResponseInterface

$method:HTTPメソッド
$uri:アクセス先のURI
$options:動作オプション

レスポンスを処理する

requestメソッドの戻り値は、サーバーからの応答データを表すResponseInterfaceオブジェクト。
上記ではgetBodyメソッドで応答の本体を取得している。

HTTP POSTによる通信

まとまったデータを送信するにはPOSTを使う。
リクエスト本体には、form_paramsオプションに「キー名 => 値」形式で引き渡せる。

http_post.php
require '../vendor/autoload.php';

$cli = new GuzzleHttp\Client([
    'base_uri' => 'http://wings.msn.to',
]);

$res = $cli->post('/tmp/post.php', [
    'form_params' => [
        'name' => '佐々木新之助'
    ]
]);

print $res->getBody(); // こんにちは、佐々木新之助さん!
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1