ホームページ  >  記事  >  バックエンド開発  >  PHP8.0のHTTPクライアントライブラリ

PHP8.0のHTTPクライアントライブラリ

WBOY
WBOYオリジナル
2023-05-14 08:51:401660ブラウズ

PHP8.0 の HTTP クライアント ライブラリ

PHP8.0 のリリースでは、多くの新機能と改善がもたらされました。最も目を引くのは、組み込みの HTTP クライアント ライブラリの追加です。このライブラリは、HTTP リクエストを送信し、返された応答を処理する簡単な方法を提供します。この記事では、このライブラリの主な機能と使用法について説明します。

HTTP リクエストの送信

PHP8.0 の組み込み HTTP クライアント ライブラリを使用して HTTP リクエストを送信するのは非常に簡単です。この例では、GET メソッドを使用して、この Web サイトのホームページを取得します。

use HttpClientExceptionHttpException;
use HttpClientHttpClient;
use HttpMessageRequestFactory;
use HttpMessageStreamFactory;

require_once "vendor/autoload.php";

// Create the client
$httpClient = HttpClientDiscovery::find();

// Create the request
$requestFactory = new RequestFactory();
$request = $requestFactory->createRequest(
    'GET',
    'http://example.com'
);

// Send the request and wait for the response
try {
    $response = $httpClient->sendRequest($request);
} catch (HttpException $e) {
    echo 'Error: ' . $e->getMessage();
    exit;
}

// Print the response body
$body = (string) $response->getBody();
echo $body;

この例では、最初にファクトリ クラス メソッド HttpClientDiscovery::find() を使用して、 HTTP クライアント。次に、RequestFactory::createRequest() メソッドを使用して、リクエスト メソッドとリクエスト URL を指定して HTTP リクエストを作成します。最後に、HttpClient::sendRequest() メソッドを使用してリクエストを送信し、応答を待ちます。リクエストの送信に失敗した場合は、HttpException 例外がスローされます。

応答の処理

応答を受信した後、HTTP 応答オブジェクトを使用して、応答ステータス、応答ヘッダー、および応答本文にアクセスできます。以下のコードでは、応答ステータス、応答ヘッダー、および応答本文を表す文字列を出力します。

use HttpMessageResponseFactory;

$responseFactory = new ResponseFactory();
$status = $response->getStatusCode();
$headers = $response->getHeaders();
$body = (string) $response->getBody();

$responseString = sprintf(
    "HTTP/%s %s
%s

%s",
    $response->getProtocolVersion(),
    $status,
    implode("
", $headers),
    $body
);

echo $responseString;

ここでは、ResponseFactory::createResponse() メソッドを使用して HTTP 応答オブジェクトを作成します。次に、ResponseInterface インターフェイスによって提供されるメソッドを使用して、応答ステータス、応答ヘッダー、および応答本文にアクセスします。最後に、応答を文字列に結合し、画面に表示します。

応答本文の処理

HTTP リクエストを送信し、サーバーから応答を受信したときに、応答本文を処理することもできます。 JSON 応答本文を処理する方法を見てみましょう。

use HttpMessageJsonResponseFactory;

$responseFactory = new JsonResponseFactory();
$decoded = $responseFactory->createResponse($response)->getPayload();

echo 'The decoded response is:' . PHP_EOL;
print_r($decoded);

この例では、JsonResponseFactory::createResponse() メソッドを使用して、JSON 形式の HTTP 応答オブジェクトを作成します。次に、JsonResponseInterface インターフェイスによって提供される getPayload() メソッドを使用して、JSON 応答本文をデコードします。最後に、デコードされた応答本文をコンソールに出力します。

例外の処理

HTTP クライアント ライブラリを使用する場合、ネットワーク接続エラーやサーバー障害が原因でリクエストが失敗することがあります。これが発生すると、HTTP クライアント ライブラリは HttpException 例外をスローします。次のコード スニペットでは、この例外をキャッチし、エラー メッセージを出力します。

use HttpClientExceptionHttpException;

// ...

try {
    $response = $httpClient->sendRequest($request);
} catch (HttpException $e) {
    echo 'Error: ' . $e->getMessage();
    exit;
}

例外が発生すると、エラー メッセージが表示され、プログラムが終了します。これにより、リクエストが失敗した場合に、エラー メッセージの出力やリクエストの再試行など、適切なアクションを実行できるようになります。

結論

HTTP クライアント ライブラリは、PHP8.0 の重要な新機能です。これは、HTTP リクエストを送信し、応答を処理するための強力な方法を提供します。この記事では、HTTP リクエストの送信、応答の処理、応答本文の処理、例外の処理など、HTTP クライアント ライブラリの主な機能と使用法を紹介しました。これで、PHP アプリケーションで HTTP クライアント ライブラリを使用できるようになりました。

以上がPHP8.0のHTTPクライアントライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。