首页 >后端开发 >php教程 >如何在Guzzle 6中高效检索响应体?

如何在Guzzle 6中高效检索响应体?

Barbara Streisand
Barbara Streisand原创
2024-11-28 13:54:14643浏览

How to Efficiently Retrieve the Response Body in Guzzle 6?

从 Guzzle 6 中的响应中检索正文

使用 Guzzle 时,响应的正文存储在流中。要检索它,有两种常见的方法。

使用 PHP 转换运算符

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

此操作将读取从流的开头到结尾的所有数据。后续调用 getBody()->getContents() 将返回空字符串。

使用 getBody()->getContents()

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

与getContents(),它只返回流的剩余内容。如果您调用它两次而没有使用 rewind() 或eek() 查找位置,它将返回一个空字符串。

示例

使用 (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

结论

两种方法都会检索响应正文。根据您的具体需求选择方法,例如是否只需要读取一次数据或多次读取数据。

以上是如何在Guzzle 6中高效检索响应体?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn