PHP cURL-запрос занимает весь тайм-аут - PullRequest
0 голосов
/ 27 марта 2019

В настоящее время у меня есть приложение Laravel, которое выполняет запрос CURL от одного маршрута к другому в пределах того же маршрута.Мой CURL выглядит следующим образом:

//LOGGING THAT A CURL CALL IS ABOUT TO BE MADE 
$url = env('APP_URL') . '/tests/add/results'; 
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return server error
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLINFO_HEADER_OUT, FALSE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $test_post_data);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$response = curl_exec($ch);

В маршруте, на который отправляется POST, первое, что я регистрирую, это данные запроса:

//LOGING THAT I RECEIVED THE CURL CALL in receiving function

I'mобратите внимание, что журналы для данных запроса регистрируются ровно столько же времени, сколько и тайм-аут, то есть запрос фактически отправляется через 10 секунд после первоначального вызова.

В моих журналах я вижу что-то вроде:

10:10:10 - LOGGING CURL CALL
10:10:20 - Recieving CURL call

Если я изменил время ожидания на 30, то через 30 секунд в журнале будет показано, что я получил вызов CURL.

Кто-нибудь знает, почему это может происходить?

Ответ от CURL просто возвращается как false всегда.

1 Ответ

0 голосов
/ 27 марта 2019

Вы не предоставили достаточно информации, но я думаю, что проблема будет одной или несколькими из следующих:

  • WebServer http://127.0.0.1:8000 не работает
  • Сценарий, расположенный в http://127.0.0.1:8000/tests/add/results, выполняется слишком долго и время ожидания запроса до его завершения
  • Запрошенный путь возвращает заголовки перенаправления и создает бесконечный цикл
  • Ответ слишком велик для завершенияпередача данных за тридцать секунд (очень странно, если на локальном хосте)

Попробуйте отладку и предоставьте больше информации об этом, чтобы мы могли вам помочь.


PS: Во-первыхя бы попытался поймать заголовки (curl_setopt($ch, CURLINFO_HEADER_OUT, true);) и распечатать ответ (var_dump($response);) - или сохранить его в некоторый файл:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...