import time
import requests
def make_request():
response = requests.get("http://example.com/api")
if response.status_code == 500:
# エラーが発生した場合、指数バックオフを行う
time.sleep(2) # 2秒待つ
make_request() # リトライ
else:
# エラーが発生しなかった場合の処理
print(response.text)
429 Too Many Requests: このステータスコードは、クライアントがリクエストを頻繁に行いすぎることを示します。サーバーは制限をかけているため、リトライを行う前に一定時間待つ必要があります。以下にPythonの例を示します。
import time
import requests
def make_request():
response = requests.get("http://example.com/api")
if response.status_code == 429:
# リクエストが制限された場合、一定時間待つ
wait_time = int(response.headers.get("Retry-After", 1))
time.sleep(wait_time)
make_request() # リトライ
else:
# エラーが発生しなかった場合の処理
print(response.text)
これらは一部のステータスコードに基づくリトライ方法の例です。他のHTTPステータスコードにも応じて独自のリトライロジックを実装することができます。重要なのは、適切なエラーハンドリングとリトライメカニズムを実装し、ユーザーエクスペリエンスを向上させることです。