To solve the requests “ConnectionError: Max retries exceeded with url”, use a Retry
object and specify how many connection-related errors to retry on and set a backoff factor to apply between attempts.
main.py
import requests
from requests.adapters import HTTPAdapter, Retry
def make_request():
session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
url = 'https://reqres.in/api/users'
response = session.get(url)
parsed = response.json()
print(parsed)
make_request()
The Session
object allows us to persist certain parameters across requests.
We passed the following keyword arguments to the Retry object:
connect
– the number of connection-related errors to retry onbackoff_factor
– a backoff factor factor to apply between attempts after the second try.
The example above retries the request 3 times with backoff factor of 0.5 seconds after the second try.
You can also use a try/except
block if you don’t want to retry when an error occurs.
main.py
import requests
def make_request():
try:
url = 'https://reqres.in/api/users'
response = requests.get(url)
parsed = response.json()
print(parsed)
except requests.exceptions.ConnectionError:
#
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/279975.html