You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

首次请求Vidal API遇SSL错误(Max retries exceeded)如何解决?

解决首次请求API时的SSL错误(Max retries exceeded with url)

看起来你遇到的问题核心不是证书验证(虽然你设置了verify=False),而是Python 2.7自带的SSL库版本过旧,不支持目标服务器要求的TLS协议版本。浏览器能正常访问是因为现代浏览器默认支持最新的TLS协议,而你的Python 2.7环境可能还在用老旧的TLS 1.0/1.1,服务器直接拒绝了握手请求,导致出现SSLEOFError和重试耗尽的错误。

下面是几个可行的解决步骤:

1. 先确认你的SSL和Python版本

先运行这两个命令,看看当前环境的SSL版本:

python -c "import ssl; print(ssl.OPENSSL_VERSION)"
python --version

如果你的OpenSSL版本低于1.0.1g,或者Python 2.7版本低于2.7.13,那大概率是协议不兼容的问题——这些旧版本默认不支持TLS 1.2,而现在很多API服务器已经不再接受TLS 1.0/1.1的请求了。

2. 强制指定TLS 1.2协议(临时解决方案)

你可以通过自定义HTTPAdapter来强制requests使用TLS 1.2发起请求,绕过默认的协议限制。修改你的代码如下:

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.poolmanager import PoolManager
import ssl

class TLS12Adapter(HTTPAdapter):
    def init_poolmanager(self, connections, maxsize, block=False):
        self.poolmanager = PoolManager(
            num_pools=connections,
            maxsize=maxsize,
            block=block,
            ssl_version=ssl.PROTOCOL_TLSv1_2
        )

url = "https://api.vidal.fr/rest/api/products?app_id=MY_ID&app_key=MY_KEY&q=doliprane"
session = requests.Session()
session.mount('https://', TLS12Adapter())
response = session.get(url, verify=False)
print(response.text.encode('utf8'))

这个适配器会强制所有HTTPS请求使用TLS 1.2,很多情况下能解决协议不兼容的问题。

3. 升级Python环境(长期解决方案)

Python 2.7已经在2020年停止了官方维护,不仅存在安全漏洞,而且越来越多的服务不再支持它的SSL协议。最稳妥的办法是升级到Python 3.7+版本,新版本的Python默认支持最新的TLS协议,而且requests库在Python 3下的兼容性更好。

升级后,你的原始代码甚至不需要修改verify=False(当然,建议尽量开启证书验证,除非你确认环境安全),就能正常请求API。

4. 升级requests和urllib3库

如果暂时无法升级Python,至少把requests和urllib3升级到Python 2.7支持的最新版本:

pip install --upgrade requests urllib3

旧版本的requests可能没有正确处理TLS协议的配置,升级后可能会自动适配更合适的协议版本。

额外说明

你提到verify=False无效,是因为这个参数只是跳过证书有效性验证,而你的问题出在TLS握手阶段的协议不匹配——服务器根本没完成握手就断开了连接,和证书验证无关,所以verify=False无法解决这个问题。

内容的提问来源于stack exchange,提问作者cuzureau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 21:37:52