请求大量数据时 Guzzle 不返回响应?
Guzzle not returning response when asking for large amount of data?
我正在调用一个 returns 很多 "datapoints" 的端点,然后将其绘制在图表上。当我要求 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 支持为您提供数据流,这意味着它不会将整个数据加载到内存中,但可以一次为您提供一个块。
或者,您可能想向您的服务器发出几个较小的请求并合并结果。
我正在调用一个 returns 很多 "datapoints" 的端点,然后将其绘制在图表上。当我要求 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 支持为您提供数据流,这意味着它不会将整个数据加载到内存中,但可以一次为您提供一个块。
或者,您可能想向您的服务器发出几个较小的请求并合并结果。