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

Python调用日出日落API遇SSL证书过期及请求重试超限错误求助

SSL证书过期导致requests请求失败的问题解决

错误原因

目标API api.sunrise-sunset.org 的SSL证书已过期,requests库在建立HTTPS连接时会默认验证服务器证书的合法性,证书过期会触发SSLCertVerificationError,导致连接终止。

解决方案

  • 临时跳过证书验证(仅适用于学习/测试场景)
    在requests.get方法中添加verify=False参数,绕过证书验证逻辑。注意这种方式会降低连接安全性,严禁在生产环境使用:

    import requests
    import urllib3
    
    # 关闭不安全请求的警告提示
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    
    my_lat = 51.507
    my_long = -0.1277
    parameters = {"lat": my_lat, "lng": my_long}
    
    # 添加verify=False跳过证书验证
    response = requests.get("https://api.sunrise-sunset.org/json", params=parameters, verify=False)
    response.raise_for_status()
    data = response.json()
    print(data)
    
  • 改用HTTP协议请求
    将请求URL的https替换为http,使用非加密的HTTP协议发起请求,绕开SSL证书验证环节:

    import requests
    
    my_lat = 51.507
    my_long = -0.1277
    parameters = {"lat": my_lat, "lng": my_long}
    
    # 改用HTTP协议
    response = requests.get("http://api.sunrise-sunset.org/json", params=parameters)
    response.raise_for_status()
    data = response.json()
    print(data)
    
  • 更新本地根证书库(辅助方案)
    如果系统根证书库过旧,可能无法正确识别有效证书(虽本次问题是目标证书过期,但更新根证书可避免同类其他场景问题):

    • Windows:通过系统设置的Windows Update安装最新根证书
    • macOS:打开「钥匙串访问」应用,检查并更新根证书,或通过系统偏好的软件更新升级
    • Linux(Ubuntu/Debian):执行命令更新证书包
      sudo apt update && sudo apt install --reinstall ca-certificates
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:15:44