用于HTTP保持活动的PHP Guzzle客户端

时间:2016-03-04 03:59:59

标签: php httpclient keep-alive guzzle

我正在尝试连接到一个使连接保持活动状态并发送分块数据的API。

我有一个使用fsockopen的解决方案,它写入和读取流并使用while(!$stream->eof())

我想知道我是否可以使用Guzzle来获得相同的结果?

我看过Async方法,但有些人可以告诉我如何等待流吗?

1 个答案:

答案 0 :(得分:2)

Guzzle 6+支持PRS-7,它将响应主体定义为流。您可以同步或异步请求数据,这没关系。

为您的请求设置stream option也很重要:

$client = new Client(/* ... */);

$response = $client->get('http://some.url/', ['stream' => true]);
$bodyStream = $response->getBody();

while (!$bodyStream->eof()) {
    echo $bodyStream->read(1024);
}