ホームページ >バックエンド開発 >PHPチュートリアル >PHP 開発: Guzzle を使用して HTTP クライアントを実装する
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", ...}'この例では、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"}", ... }'この例では、リクエスト メソッドを POST として指定し、リクエスト本文の JSON データを渡します。ここでは、Guzzle が提供する RequestOptions クラスを使用してリクエスト パラメーターを指定します。リクエスト パラメーターは、JSON、フォームなどのさまざまな形式で指定できます。 他の HTTP リクエスト メソッド (PUT、DELETE、PATCH など) は GET および POST リクエストに似ており、
$client->request の最初のパラメータで渡すだけで済みます。 () 対応するメソッドを入力するだけです。
$client = new Client([ 'timeout' => 10 ]);(2) ヘッダー: カスタム リクエスト ヘッダー。
$client = new Client([ 'headers' => [ 'User-Agent' => 'MyApp/1.0' ] ]);(3) クエリ: リクエストのクエリ パラメータ。配列または文字列にすることができます。
$client = new Client(); $response = $client->request('GET', 'https://api.github.com/search/repositories', [ 'query' => [ 'q' => 'php', 'sort' => 'stars' ] ]);(4) auth: 認証を要求します。基本認証または OAuth1.0 を使用できます。
$client = new Client(); $response = $client->request('GET', 'https://api.github.com/user', [ 'auth' => ['username', 'password'] ]);(5) verify: SSL 証明書を検証するかどうか。デフォルトは true です。
$client = new Client([ 'verify' => false ]);(6) プロキシ: プロキシ設定。HTTP、HTTPS、または SOCKS5 プロキシにすることができます。
$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(); } }この例では、無効な URL にアクセスしようとします。Guzzle は RequestException 例外をスローします。例外エラーをキャッチすることで例外を取得できます。メッセージ。同時に、リクエスト応答が存在する場合は、
$e->getResponse() メソッドを通じて応答オブジェクトを取得できます。
以上がPHP 開発: Guzzle を使用して HTTP クライアントを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。