問題タブ [http-status-code-429]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - urllib2 HTTP エラー 429
だから私はサブredditsのリストを持っていて、それらを開くためにurllibを使用しています。それらを調べてみると、最終的に urllib は次のように失敗します。
いくつかの調査を行ったところ、reddit はサーバーへのリクエストの量を IP で制限していることがわかりました。
リクエストは 2 秒ごとに 1 つまでにしてください。リクエストのバーストにはある程度の許容範囲がありますが、それを正常に保ちます。一般に、1 分間に 30 件を超えないようにしてください。
そこでtime.sleep()
、リクエストを 10 秒ごとに 1 ページに制限することにしました。これも同様に失敗します。
上記の引用は、reddit APIページから取得したものです。reddit API は使用していません。この時点で、私は2つのことを考えています。その制限が reddit API にのみ適用されるか、urllib にも制限があります。
この2つのうちどちらかわかる方いますか?または、どうすればこの問題を回避できますか?
api - Shopify API が HTTP ステータス コード 429 で突然失敗しますか?
Shopify API を使用してストアの商品データを更新し、注文情報を取得するアプリケーションは、突然、失敗したリクエストに新しい応答エラー コード 429 (以下の要求ヘッダーのスナップショット) を取得しています。誰もこれを経験しましたか?このエラーを処理する正しい方法は何ですか? そして (おそらくもっと重要なことに): 開発者は、どのような変更が行われ、いつ実装されるかを知るためにどこに行くのでしょうか?
apache2 - Apache2:429、リクエストの応答が多すぎます
APIを集中的に使用し始めると、Apacheは429エラーコードを返します。DeAPI呼び出しはSAPBusinessObjectによって生成され、HTTPをHTTPSに変換するために「リバースプロキシ」に送信されます。リバースプロキシは、HTTPSを介してHTTPリクエストをWebサーバーに転送します。
15回のリクエストの後、ReverseProxeyはApacheのerror.logに429エラーを返します。これらの15のリクエストは9分以内に行われます。
この種の負荷/トラフィックを処理するようにApacheを構成するにはどうすればよいですか?最初の15回後にさらに300件のリクエストがあったため...
リバースプロキシ構成:
php - PHP (Apache) がサイレントに HTTP 429 などを 500 に変換する
PHP の header() メソッドで、私のステータスの一部を 500 に静かに変換する奇妙な点を発見しました。さまざまな Web 検索でこの動作についての言及を見つけることができなかったので、他の人を不快にさせないように、ここにこれを追加します。だけでなく、私が思いついたよりも優れた回避策 (PHP または Zend1 のいずれか) を誰かが発見したかどうかも尋ねます。
次のような単純な PHP スクリプトがあるとします。
私は次のようなものを受け取ることを期待しています:
代わりに、実際には以下を返します。
謎に加えて、私のApacheエラーログにはイベントがなく、アクセスログには正しいステータスコードが表示されます(したがって、ブラウザに送信されたものとは異なります):
401、420、426 などの他の多くのステータス コードでテストすると、すべて正常に動作します。
私が明示的で、header('HTTP/1.1 429 Too Many Requests'); を送信すると、すべて正常に動作します。これは、私が Zend Framework を使用していて、その setHttpResponseCode メソッドが php の header() 関数の 3 番目のパラメーターとして使用する整数を想定していることを除いて、便利な回避策です。
それ以来、RFC 6585 で追加されたステータスに特に適用されるように思われることを発見しました ( https://github.com/php/php-src/pull/274を参照)。 5.4.14 と 5.4.16 (私がテストした 2 つのバージョン) のソース コードには明らかに存在しませんが、429 のような機能しないものは存在します。
アップデート:
回答が示しているように、これは主に PHP ではなく Apache の問題です。それに応じてタイトルを更新しました。最も興味深いのは、これが特定のバージョンの Apache でのみ修正されていることです (古いものと新しいものの間に明らかな一貫性はありません)。問題の上流の問題はここにあると思います: https://issues.apache.org/bugzilla/show_bug.cgi?id=44995
c# - HTTP 429 を返すには?
私は WCF を使用して API を実装していますが、仕様では特定の状況で HTTP 429 を返すようになっています。
通常、私は単純に次のように書きます。
ただし、HttpStatusCode 列挙には 429 が含まれていません。
明らかに列挙型にキャストできます
ただし、API を呼び出すアプリケーションに正しい結果が得られないのではないかと心配しています。
HttpStatusCode を拡張し、有効な (ただしサポートされていない) HTTP ステータスを送信する最良の方法は何ですか?
python - HTTP エラー 429 (Too Many Requests) python を回避する方法
Python を使用して Web サイトにログインし、複数の Web ページから情報を収集しようとすると、次のエラーが表示されます。
私は使用time.sleep()
して動作しましたが、インテリジェントではなく信頼性が低いようです。このエラーを回避する他の方法はありますか?
これが私のコードです:
java - HTTP エラー 429 Java 処理?
サイトで更新を検索する Java プログラムがあります。チェックしてから、ユーザーが設定した期間スリープします。
いくつかのテスト中に、私はスリープ時間を 0 秒に設定しましたが、それを忘れて、サイトを過剰に要求しました (過剰なスパム?、用語がわからない)。このサイトに行って手動で何かをチェックしていなければ、これに気付かなかったでしょう。
エラーは 429 です: リクエストが多すぎます。Web を検索したところ、いつ再試行してもよいか (retry-after ヘッダー) がサイトから送信されるはずであることがわかりました。問題は、この情報を取得できないか、見つけられないことです。
クロム経由でソースを表示しましたが、情報が見つかりませんでした。次に getErrorStrem を使用しましたが、情報が見つかりませんでした。
スタックオーバーフローに関する別の質問では、
すべてが適切に設定されている場合は、429 応答とともに「Retry-after」ヘッダーも受け取ります。
Web テクノロジーに関する私の知識はかなり限られています。私が書いたプログラムは、ページのソースを見て気づいたパターンを探しました。私のJavaの知識は優れていますが、素晴らしいものではありません。
では、再試行情報を取得するにはどうすればよいですか? 約20時間が経過し、再試行すると同じエラーが発生しました。