2016-03-21 43 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