溫馨提示×

python curl命令怎樣進行重試機制

小樊
136
2024-11-28 22:36:24
欄目: 編程語言

在Python中,您可以使用requests庫來實現類似于cURL的重試機制

pip install requests

接下來,您可以使用以下代碼實現重試機制:

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry

def requests_retry(retries=3, backoff_factor=0.3, status_forcelist=(500, 502, 504), session=None):
    session = session or requests.Session()
    retry = Retry(
        total=retries,
        read=retries,
        connect=retries,
        backoff_factor=backoff_factor,
        status_forcelist=status_forcelist,
    )
    adapter = HTTPAdapter(max_retries=retry)
    session.mount('http://', adapter)
    session.mount('https://', adapter)
    return session

url = "https://example.com"  # 替換為您要請求的URL

try:
    response = requests_retry().get(url)
    response.raise_for_status()  # 如果響應狀態碼不是200,將拋出異常
    print(response.text)
except requests.exceptions.RequestException as e:
    print(f"請求失敗,錯誤信息:{e}")

在這個示例中,我們定義了一個名為requests_retry的函數,該函數接受以下參數:

  • retries:重試次數,默認為3次。
  • backoff_factor:指數補償因子,默認為0.3秒。
  • status_forcelist:要強制重試的狀態碼列表,默認為(500, 502, 504)。

requests_retry函數創建一個Session對象,然后為其安裝一個HTTPAdapter,該適配器使用指定的重試策略。最后,我們使用get方法發出請求,并使用raise_for_status方法檢查響應狀態碼。如果狀態碼不是200,將拋出異常。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女