2016-07-16 2 views
-1

Код ниже работал раньше, но теперь дает мне следующую ошибку: «не удалось открыть поток: HTTP-запрос не удался! HTTP/1.1 429». Кажется, что проблема с файлом_get_contents() - в аналогичном потоке было предложено, чтобы cURL мог помочь, но я не могу заставить его работать.Внезапно файл_get_contents() не смог открыть мой поток

Кто-нибудь хочет объяснить, почему я получил ошибку сейчас, когда он работал отлично? Могу ли я решить проблему без использования cURL? Если я должен использовать cUrl, как и почему?

foreach ($soccerseason->getFixturesByMatchday($matchDay) as $fixture) { 
     if (strcmp($fixture->homeTeamName, $team) == 0 || strcmp($fixture->awayTeamName, $team) == 0) { 
      $hometeamuri = $fixture->_links->homeTeam->href; 
      $gethometeamcontent = file_get_contents($hometeamuri, false); 
      $hometeam = json_decode($gethometeamcontent); 
+0

Вы искали то, что означает http-код 429? – drew010

+0

Дальняя сторона может отменить ваш запрос. https://httpstatuses.com/429 –

ответ

0

cURL не поможет.

Решение часть 1: Как уже сказано, отметьте HTTP Status 429, и вы увидите, что сервер выполнен с вашим количеством запросов. Всегда проверяйте статус HTTP, если что-то кажется странным.

Решение часть 2: Подождите, пока сервер не покраснет его использование данных (или получите новый IP, если возможно, повторно подключившись к вашему интернет-провайдеру (например, перезапустив маршрутизатор)).

Решение часть 3: Попробуйте уменьшить количество запросов, которые вы выполняете (вы можете получить json со всеми результатами, в противном случае, по крайней мере, сохранить результаты для каждой команды и прочитать ее из памяти вместо повторного запроса того же данные).

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