从 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中文网其他相关文章!