日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python requests 重试_我可以为requests.request设置最大重试次数吗?

發布時間:2023/12/10 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python requests 重试_我可以为requests.request设置最大重试次数吗? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這不僅會改變最大重試次數,而且還會啟用回退策略,使所有http://地址在重試前睡眠一段時間(總共5次):import requests

from urllib3.util.retry import Retry

from requests.adapters import HTTPAdapter

s = requests.Session()

retries = Retry(total=5,

backoff_factor=0.1,

status_forcelist=[ 500, 502, 503, 504 ])

s.mount('http://', HTTPAdapter(max_retries=retries))

s.get('http://httpstat.us/500')

根據documentation for ^{}:如果回退因子為0.1,則sleep()將在重試之間睡眠[0.1s、0.2s、0.4s,…]。如果返回的狀態代碼是500,502,503或504,則還將強制重試。

其他各種Retry選項允許更細粒度的控制:total–允許的重試總數。

connect–要重試的連接相關錯誤數。

read–讀取錯誤時重試多少次。

重定向-要執行的重定向數。

method_whitelist–一組大寫的HTTP方法動詞,我們應該重試。

status_forcelist–一組我們應該強制重試的HTTP狀態代碼。

退避系數-在兩次嘗試之間應用的退避系數。

raise_on_redirect–如果重定向數已用盡,是引發一個MaxRetryError,還是返回一個響應代碼在3xx范圍內的響應。

raise_on_status–類似于raise_on_redirect的含義:如果狀態落在status_forcelist范圍內,并且重試次數已用盡,則是否應引發異常或返回響應。

NB:raise-on-u status是一個相對較新的版本,尚未發布urllib3或請求。raise-on-u status關鍵字參數似乎已使其在python 3.6版本中最多進入標準庫。

要在特定的HTTP狀態代碼上重試請求,請使用status-forcelist。例如,狀態強制列表=[503]將在狀態代碼503上重試(服務不可用)。

默認情況下,重試僅在以下情況下觸發:無法從池中獲取連接。

TimeoutError

HTTPException提升(在Python 3 elsehttplib中從http.client開始)。

這似乎是低級HTTP異常,如URL或protocol not

形狀正確。

SocketError

ProtocolError

注意,這些都是阻止接收常規HTTP響應的異常。如果生成任何常規響應,則不執行重試。如果不使用狀態強制列表,即使是狀態為500的響應也不會重試。

為了使其以更直觀的方式操作遠程API或web服務器,我將使用上面的代碼片段,它強制在狀態500,502,503和504上重試,所有這些狀態在web上并不少見,并且(可能)在足夠長的退避期內可以恢復。

編輯的:直接從urllib3導入{}類。

總結

以上是生活随笔為你收集整理的python requests 重试_我可以为requests.request设置最大重试次数吗?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。