2016-03-21 2 views
0

Я вызываю конечную точку, которая возвращает много «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 
    ) 
); 

Как вы можете видеть, мои таймауты массивны. Это заставляет меня думать, что может быть и другой предел. Например, не позволяя ответа больше определенного размера.

Но я не могу найти способ установить это с помощью жужжания? Любая идея, если это может быть проблемой или, возможно, что-то еще?

ответ

1

Guzzle, вероятно, выбросит исключение, если что-то пойдет не так, так что вы можете проверить, правильно ли сервер отвечает, когда вы запрашиваете много данных?

В противном случае, не исключено, что ваш скрипт сбой из-за ограничения памяти, проверка журнала ошибок php поможет выяснить, действительно ли это так.

Если это проблема, есть разные способы борьбы с ним, в зависимости от данных и того, что вы хотите с ним делать.

Guzzle поддерживает передачу потока данных, это означает, что он не загружает все данные в память, но может дать вам один кусок за раз.

В качестве альтернативы вы можете захотеть сделать несколько небольших запросов на свой сервер и объединить результаты.

+0

Проблема была не на стороне Гузл, а на самом деле на конечной точке, которую вызывали. Однако ваше сообщение помогло мне прийти к такому выводу. Благодаря! – coderama

Смежные вопросы