2016-07-16 3 views
-1

以下のコードは以前は動作していましたが、「ストリームを開けませんでした:HTTP要求は失敗しました!HTTP/1.1 429」というエラーが表示されます。 file_get_contents()には何らかの問題があるようです。同様のスレッドでは、cURLが役立つかもしれないと示唆されていましたが、うまく動作しません。突然file_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: サーバーがデータ使用量をフラッシュするまで待ってください(または、可能であればISPに再接続して新しいIPを取得する(ルータを再起動するなど))。

解決パーツ3: リクエストの数を減らすようにしてください(すべての結果でjsonを取得する可能性があります。そうでない場合は、少なくとも各チームの結果を保存し、同じリクエストを再要求するのではなくメモリから読み込みます)。データ)。

関連する問題