PHP 開発: Guzzle を使用して HTTP クライアントを実装する
PHP 開発プロセスでは、HTTP リクエストを伴うデータを取得するために外部サービスと通信する必要があることがよくあります。Guzzle は強力な PHP HTTP クライアントです。このツールは、HTTP リクエストを簡単に行うためのシンプルで使いやすい API を提供します。
この記事では、PHP 開発者が HTTP リクエストを迅速に実装できるように、Guzzle の基本的な使用法を紹介します。
Guzzle は Composer を通じてインストールできます。必要な作業は、プロジェクトのルート ディレクトリにあるcomposer.json ファイルに次のコンテンツを追加することだけです。
{ "require": { "guzzlehttp/guzzle": "^7.0.0" } }
composer install コマンドを実行して、Guzzle をインストールします。
use GuzzleHttpClient; $client = new Client(); $response = $client->request('GET', 'https://api.github.com/repos/guzzle/guzzle'); echo $response->getStatusCode(); // 200 echo $response->getHeaderLine('content-type'); // 'application/json; charset=utf8' echo $response->getBody(); // '{"id": 1420053, "name": "guzzle", ...}'
Client インスタンスを作成し、GET リクエストを送信して Github の Guzzle プロジェクトにアクセスします。 API を使用して、
$response オブジェクトを通じてリクエスト応答のステータス コード、応答ヘッダー、および応答本文の内容を取得します。それはとても簡単です!
use GuzzleHttpClient; use GuzzleHttpRequestOptions; $client = new Client(); $response = $client->request('POST', 'http://httpbin.org/post', [ RequestOptions::JSON => [ 'key' => 'value' ] ]); echo $response->getStatusCode(); // 200 echo $response->getHeaderLine('content-type'); // 'application/json' echo $response->getBody(); // '{ ... "data": "{"key":"value"}", ... }'
$client->request の最初のパラメータで渡すだけで済みます。 () 対応するメソッドを入力するだけです。
$client = new Client([ 'timeout' => 10 ]);
$client = new Client([ 'headers' => [ 'User-Agent' => 'MyApp/1.0' ] ]);
$client = new Client(); $response = $client->request('GET', 'https://api.github.com/search/repositories', [ 'query' => [ 'q' => 'php', 'sort' => 'stars' ] ]);
$client = new Client(); $response = $client->request('GET', 'https://api.github.com/user', [ 'auth' => ['username', 'password'] ]);
$client = new Client([ 'verify' => false ]);
$client = new Client([ 'proxy' => 'http://user:pass@host:port' ]);
use GuzzleHttpClient; use GuzzleHttpExceptionRequestException; $client = new Client(); try { $response = $client->request('GET', 'https://invalid-url.com'); } catch (RequestException $e) { echo $e->getMessage(); if ($e->hasResponse()) { echo $e->getResponse()->getBody()->getContents(); } }
$e->getResponse() メソッドを通じて応答オブジェクトを取得できます。
以上がPHP 開発: Guzzle を使用して HTTP クライアントを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。