相關舊版本的請求問題:Can I set max_retries for requests.request?Python的請求乾淨利落設置MAX_RETRIES GET或POST方法
我還沒有看到一個例子,在requests.get()
或requests.post()
通話乾淨納入max_retries
。
會使用Session
當愛一個
requests.get(url, max_retries=num_max_retries))
實施
相關舊版本的請求問題:Can I set max_retries for requests.request?Python的請求乾淨利落設置MAX_RETRIES GET或POST方法
我還沒有看到一個例子,在requests.get()
或requests.post()
通話乾淨納入max_retries
。
會使用Session
當愛一個
requests.get(url, max_retries=num_max_retries))
實施
快速搜索python-requests docs將reveal exactly how to set max_retries
的。
要直接從文檔拉代碼:
import requests
s = requests.Session()
a = requests.adapters.HTTPAdapter(max_retries=3)
b = requests.adapters.HTTPAdapter(max_retries=3)
s.mount('http://', a)
s.mount('https://', b)
s.get(url)
你要找的是什麼,但是,是不是配置的有以下幾個原因:
請求不再提供用於配置的手段
重試次數特定於第e適配器被使用,而不是會話或特定請求。
如果一個請求需要一個特定的最大請求數量,那麼這對於不同的請求就足夠了。
這項修改是在一年前的請求中引入的。我們有目的地保留了2.0,因爲它最有意義。我們也不會引入參數來配置最大重試次數或其他任何事情,以防您想要問。
編輯使用類似的方法可以實現在重試是如何工作的一個更精細的控制。你可以閱讀this以獲得良好的感覺。總之,你需要從urllib3
(見下面)導入Retry
類,並告訴它如何表現。我們將其傳遞給urllib3
,您將有更好的選項來處理重試。
from requests.packages.urllib3 import Retry
import requests
# Create a session
s = requests.Session()
# Define your retries for http and https urls
http_retries = Retry(...)
https_retries = Retry(...)
# Create adapters with the retry logic for each
http = requests.adapters.HTTPAdapter(max_retries=http_retries)
https = requests.adapters.HTTPAdapter(max_retries=https_retries)
# Replace the session's original adapters
s.mount('http://', http)
s.mount('https://', https)
# Start using the session
s.get(url)