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.
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.You can also use a try/except
block if you don't want to retry when an error occurs.
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: #