1. 程式人生 > 其它 >requests請求嘗試超時重連

requests請求嘗試超時重連

# 參考文件
https://urllib3.readthedocs.io/en/latest/reference/urllib3.util.html#module-urllib3.util.retry

# 程式碼示例
import requests
from urllib3.util.retry import Retry
from requests.adapters import HTTPAdapter

req = requests.Session()
retries = Retry(total=3,
                backoff_factor=0.1,
                status_forcelist=[500, 502, 503, 504, 521])
req.mount('https://', HTTPAdapter(max_retries=retries))
try:
    result = req.get(url="http://httpstat.us/500", verify=False, timeout=5)
    if result.status_code == 200:
        print("ok")
except requests.exceptions.RetryError:  #這邊我們捕獲嘗試連線錯誤類,其它如具體的類在結合專案的時候會有問題,具體參考自己的專案修改。
    print("error")
    
# 相關Retry引數說明
total  允許的重試次數
connect 要重試的連線相關錯誤數
read  讀取錯誤時重試多少次
redirect  要執行的重定向數
status_forcelist 一組我們應該強制重試的HTTP狀態程式碼
backoff_factor 在第二次嘗試後在嘗試之間應用的退避因素(大多數錯誤會立即通過第二次嘗試解決,沒有延遲)
raise_on_redirect  如果重定向次數用盡,是否引發 MaxRetryError 或返回響應程式碼在 3xx 範圍內的響應。
raise_on_status  類似於raise_on_redirect:如果狀態在status_forcelist範圍內並且重試已經用盡,我們是否應該引發異常或返回響應。

-------------------------------------------

個性簽名:程式碼過萬,鍵盤敲爛!!!

如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!