啥都不会的中年小白 2024-04-25 18:45 采纳率: 62.5%
浏览 3

python requests请求一个api接口报错

我使用python requests请求一个api接口,报Caused by SSLError(SSLError(1, '[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:1000)

try:
    request = requests.get(url=url, verify=False)
    data = request.json()
    print(data[0])
except Exception as e:
    print('请求失败',e)

  • 写回答

5条回答 默认 最新

  • 关注

    晚上好🌙🌙🌙
    本答案参考ChatGPT-3.5

    这个报错是由ssl握手失败引起的,常见于客户端和服务端不支持相同的TLS版本导致。解决方法如下:

    1. 设置忽略SSL证书验证

    修改代码中的 requests.get(url=url, verify=False) 中的 verify=False 参数,来忽略SSL证书的验证。

    1. 升级Python版本

    更新Python到2.7.9以上版本或3.4以上版本,这样Python将默认使用TLSv1.2版本,从而解决了TLS握手失败的问题。

    1. 降低TLS版本

    如果服务端不支持TLSv1.2(或更高版本),可以尝试在请求中使用较低的TLS版本,比如TLSv1.1或TLSv1。代码示例:

    requests.get(url, headers={'Connection':'close'}, timeout=30, verify=False, ciphers='DEFAULT@SECLEVEL=1:!ECDHE+AESGCM:ALL')

    其中 ciphers 选项设置通信加密方式,该示例中设置为 SECLEVEL=1 ,限制算法使用等级,:!ECDHE+AESGCM:ALL 配置加密方式,可以尝试根据自己的场景进行调整,最终解决问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 4月25日

悬赏问题

  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)
  • ¥15 matlab代码 关于微分方程和嵌套的分段函数。