2016-03-21 45 views
0

我正在调用一个端点,它返回大量的“数据点”,然后将它们绘制在图上。当我询问45天的数据时,它效果很好,但是当我回过头来看时,我得到了一个空白的结果。请求大量数据时,Guzzle没有返回响应?

我这样称呼它:

$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?任何想法,如果这可能是问题或可能是别的?

回答

1

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

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

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

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

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

+0

问题不在于Guzzle方面,而是实际上被调用的端点。尽管你的文章确实帮助我得出了这个结论。谢谢! – coderama