Qeasy Cloud
Get Started

解决PythonRequests中SSLError问题

Source: Qeasy Cloud692 views

处理Python requests库的SSLError问题

在使用Python的requests库时,可能会遇到类似以下的错误信息:

File "/usr/local/lib/python3.11/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
File "/usr/local/lib/python3.11/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 517, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='xxxxx.com', port=443): Max retries exceeded with url: /gmp/auth/client/getToken?clientId=xxxx&sign=xxxx (Caused by SSLError(SSLError(1,'[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1006)'))

问题解决方案

通过降级urllib3版本,可以解决上述SSL握手失败的问题。具体操作步骤如下:

步骤一:打开终端

可以通过搜索“Terminal”找到终端,或者使用快捷键Ctrl+Alt+T。

步骤二:执行降级命令

在终端中输入以下命令并执行:

pip install urllib3==1.26.5

这个命令会卸载当前版本的urllib3并安装指定版本。

步骤三:验证版本

安装完成后,运行以下命令来确认urllib3的版本:

pip show urllib3

确保输出中的版本号为1.26.5。

注意事项

降级库可能会引入依赖冲突或其他问题,特别是如果您的应用依赖于urllib3的新特性。建议在进行这样的更改之前备份环境或使用虚拟环境。如果您正在使用虚拟环境,确保在执行上述命令之前已经激活了它。

虽然降级urllib3可能解决了SSL握手失败问题,但通常更好的做法是查明根本原因并寻求解决这个根本问题的方法,比如更新服务器的SSL配置或修复客户端的SSL/TLS配置问题。降级可能只是一种临时解决方案。

Copyright Notice

The article "解决PythonRequests中SSLError问题" is original content owned by 广东轻亿云软件科技有限公司. Reposting, quoting, copying or mirroring is strictly prohibited without written authorization. Please contact us for authorization and credit the author and source (including the original link) prominently.