はじめに
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(); // こんにちは、佐々木新之助さん!