ホームページ >バックエンド開発 >PHPチュートリアル >Guzzle 6 でレスポンスボディを効率的に取得するにはどうすればよいですか?

Guzzle 6 でレスポンスボディを効率的に取得するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 13:54:14621ブラウズ

How to Efficiently Retrieve the Response Body in Guzzle 6?

Guzzle 6 の応答から本文を取得する

Guzzle を使用する場合、応答の本文はストリームに保存されます。これを取得するには、2 つの一般的な方法があります。

PHP キャスト演算子を使用する

<br>$contents = (string) $response->getBody();<br>

この操作は、ストリームの先頭から最後まですべてのデータを読み取ります。後続の getBody()->getContents() の呼び出しでは空の文字列が返されます。

getBody()->getContents() の使用

$contents = $response->getBody()->getContents();

With getContents() を実行すると、ストリームの残りのコンテンツのみが返されます。 rewind() または Seek() を使用して位置を検索せずに 2 回呼び出すと、空の文字列が返されます。

Using (string):

$contents = (string) $response->getBody();
echo $contents; // Prints entire response body
$contents = (string) $response->getBody();
echo $contents; // Empty string, as data has already been consumed

使用中getContents():

$stream = $response->getBody();
$contents = $stream->getContents(); // Prints entire response body
$contents = $stream->getContents(); // Empty string, as data has not been reset
$stream->rewind(); // Reset stream
$contents = $stream->getContents(); // Prints entire response body

結論

どちらのアプローチでも応答本文を取得します。データを 1 回だけ読み取る必要があるか、複数回読み取る必要があるかなど、特定のニーズに基づいて方法を選択します。

以上がGuzzle 6 でレスポンスボディを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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