在请求大量数据时,Guzzle 不返回响应


Guzzle not returning response when asking for large amount of data?

我正在调用一个端点,该端点返回大量"数据点",然后将其绘制在图形上。当我要求提供 45 天的数据时,它效果很好,但是当我查看它的那一刻,我得到了一个空白结果。

我这样称呼它:

$client = new GuzzleHttp'Client();
$client->setDefaultOption('verify', false);
$result = $client->get($url.'/v2/device/1/datapoint/'.$startDateString.'/'.$endDateString.'/?api_key='.$APIKEY, 
    ['auth' =>  [$username, $password]],
    array( 
        'timeout'  => 500, 
        'connect_timeout' => 500
    )
);

如您所见,我的超时时间很大。这让我相信可能会有其他一些限制被击中。例如,不允许响应大于特定大小。

但是我找不到使用guzzle设置它的方法?知道这可能是问题还是其他原因吗?

如果

出现任何问题,Guzzle 可能会抛出异常,那么当您请求大量数据时,您是否检查服务器是否正确回复?

否则,由于内存限制,脚本崩溃的可能性不大,检查 php 错误日志应该有助于查看是否是这种情况。

如果这是问题所在,则有不同的处理方式,具体取决于数据以及您要处理它的方法。

Guzzle支持给你一个数据流,这意味着它不会将整个数据加载到内存中,但可以一次给你一个块。

或者,您可能希望向服务器发出几个较小的请求并合并结果。