公式のドキュメントより一部抜粋。完全に自分のメモ。
ログを残すときとかに便利。
以下のようなありがちなリクエストを想定。
$response = $client->request('PUT', '/put', ['json' => ['foo' => 'bar']]);
#リクエスト・レスポンスボディを取得する方法
getbody()
を使う。ボディがStringでキャストされる。
このとき、リクエストを取得するには#request->getbody()
してあげる。
use GuzzleHttp\Middleware;
// Create a middleware that echoes parts of the request.
$tapMiddleware = Middleware::tap(function ($request) {
echo $request->getHeaderLine('Content-Type');
// application/json
echo $request->getBody();
// {"foo":"bar"}
});
レスポンスを取得するには$response->getbody()
してあげる。ミドルウェアを使わないといけないっぽい。
Guzzleのミドルウェアについては、この記事が詳しいです。
$body = $response->getBody();
// Implicitly cast the body to a string and echo it
echo $body;
// Explicitly cast the body to a string
$stringBody = (string) $body;
// Read 10 bytes from the body
$tenBytes = $body->read(10);
// Read the remaining contents of the body as a string
$remainingBytes = $body->getContents();
ちなみにread()
を使うと指定したbyteだけ取得してくれるらしいです。重いデータとか用いるときには指定したい。
ステータスコード・フレーズを取得する方法
200 OK
とかそういうのをそれぞれ取得してくれます。
$code = $response->getStatusCode(); // 200
$reason = $response->getReasonPhrase(); // OK
公式ドキュメント