par*_*axi 16 python python-requests
与旧版本的请求相关问题:我可以为requests.request设置max_retries吗?
我还没有看到一个例子,干净地结合max_retries在一个requests.get()或requests.post()通话.
会爱一个
requests.get(url, max_retries=num_max_retries))
Run Code Online (Sandbox Code Playgroud)
履行
Ian*_*sco 33
快速搜索python-requests文档将清楚地显示max_retries使用时如何设置Session.
要直接从文档中提取代码:
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)
Run Code Online (Sandbox Code Playgroud)
但是,您要查找的内容由于以下几个原因而无法配置:
请求不再提供配置方法
重试次数特定于正在使用的适配器,而不是会话或特定请求.
如果一个请求需要一个特定的最大请求数,那对于不同的请求就足够了.
这一变化是在一年多前的1.0请求中引入的.我们故意将它保留为2.0,因为它最有意义.如果您正在考虑询问,我们也不会引入参数来配置最大重试次数或其他任何内容.
编辑使用类似的方法,您可以更好地控制重试的工作方式.您可以阅读此内容以获得良好的感觉.简而言之,您需要从中导入Retry类urllib3(见下文)并告诉它如何表现.我们将其传递给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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13894 次 |
| 最近记录: |