首页 > 解决方案 > 使用 Guzzle 6 读取流

问题描述

我正在尝试使用 Guzzle 6 从 api 读取数据,但找不到任何相关示例。从 api 返回的每一行都是一个 json 对象 - 目的是在收到每一行时对其进行处理。

到目前为止我的代码如下,有人可以告诉我在哪里感到困惑吗?

谢谢

    ini_set('display_errors', true);

require('vendor/autoload.php');

use GuzzleHttp\Client;
use GuzzleHttp\Stream\Stream;
use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Psr7\Request;

$token = "1234";

$client = new Client(['base_uri' => 'https://apiurl.com'], ['stream' => true, 'debug'=>true]);


$headers = [
    'Authorization' => 'Bearer ' . $token,        
    'Accept'        => 'application/json',
];


$response = $client->request('GET', '?foo=bar', ['headers' => $headers ]);


$body = $response->getBody();
while (!$body->eof()) {
    echo $body->read(1024);
}

标签: guzzle6

解决方案


事实证明,经过数小时的测试,创建客户端时出现了一个简单的错误——正确的设置如下:

$client = new Client(['base_uri' => 'https://apiurl.com', 'stream' => true, 'debug'=>true]);


推荐阅读