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

Python 3.x中requests使用代理访问HTTPS报错的问题咨询

问题诊断与解决方案

关于“代理不支持HTTPS”的说法判断

该说法属于可能的诱因之一,但不是唯一的故障原因,当前报错的核心原因是requests无法和你配置的代理地址建立有效连接,需要按优先级排查问题。

故障排查与解决步骤

  • 第一步:先修正代理配置的格式错误
    你当前的proxies配置多套了一层列表,requests要求的proxies参数是字典类型,不是包含字典的列表,这是最容易忽略的低级错误:
    错误写法:

    proxies = [{
        'http' : 'http://ip:port',
        'https' : 'http://ip:port'
    }]
    

    正确写法:

    proxies = {
        'http' : 'http://ip:port',
        'https' : 'http://ip:port' # 绝大多数代理的HTTPS请求也走HTTP代理端口,不需要写成HTTPS开头的代理地址
    }
    

    调整配置后先重新测试,大部分该类报错都是格式问题导致的。

  • 第二步:验证代理本身的连通性
    不要在代码中测试,直接用本地工具验证代理可用性,比如curl命令:
    curl -x http://你的代理ip:端口 https://www.baidu.com -v
    如果是HTTPS类型的代理,测试命令为:
    curl -x https://你的代理ip:端口 https://www.baidu.com -v
    如果上述命令返回失败,说明代理本身不可用,和代码配置无关,需要更换可用代理。

  • 第三步:排除环境变量干扰
    requests会默认读取系统的HTTP_PROXY、HTTPS_PROXY环境变量,如果系统配置了无效的代理环境变量,会覆盖你代码中的配置,可以在请求前添加代码强制关闭环境变量读取:

    import os
    os.environ['NO_PROXY'] = '*'
    
  • 第四步:适配带认证的代理
    如果你的代理需要账号密码认证,未配置认证信息也会触发连接失败,配置写法如下:

    proxies = {
        'http' : 'http://账号:密码@ip:port',
        'https' : 'http://账号:密码@ip:port'
    }
    

    搭配verify=False使用时,可以添加requests.packages.urllib3.disable_warnings()关闭冗余的证书告警。

  • 第五步:代理确实不支持HTTPS的处理方案
    如果你完成上述测试后,确认代理仅支持HTTP协议转发,可以将目标请求地址更换为HTTP协议的接口,或者直接更换支持HTTPS转发的代理服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:24:03