(Python) ConnectionError: Max retries exceeded with url

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 on
  • backoff_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:
        # 👇️ handle error here or use a `pass` statement
        print('connection error occurred')


make_request()

The except block will run if a connection error is raised in the try block.

If you got the error because requests was unable to verify the SSL certificate of the site, you can set the verify keyword argument to False to disable SSL certificate validation for the request.

Note that you should only disable SSL certificate validation during local development or testing as it could make your application vulnerable to man-in-the-middle attacks.

main.py
 
import requests


def make_request():

    try:
        url = 'https://reqres.in/api/users'

        # 👇️ set verify to False
        response = requests.get(url, verify=False)

        parsed = response.json()

        print(parsed)
    except Exception as e:
        print(e)


make_request()
 
来源:https://bobbyhadz.com/blog/python-requets-max-retries-exceeded-with-url
posted @   C羽言  阅读(276)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示