我正在调用一个端点,该端点返回大量"数据点",然后将其绘制在图形上。当我要求提供 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支持给你一个数据流,这意味着它不会将整个数据加载到内存中,但可以一次给你一个块。
或者,您可能希望向服务器发出几个较小的请求并合并结果。