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

使用requests连接无效代理时未抛出错误的问题排查

问题原因与解决方法

你遇到的问题核心是代理配置不匹配请求协议:

  • 你只在proxies字典里配置了http协议的代理,但请求的是https开头的地址。
  • requests的代理规则是:http键仅负责处理HTTP协议的请求,HTTPS请求会优先使用https键对应的代理;如果没有配置https代理,requests会直接绕过代理,用本地网络发起请求,所以才会返回<Response [200]>,并非代理生效了。

解决步骤

  1. 补全HTTPS代理配置
    把proxies字典补充https键(如果你的代理同时支持HTTP和HTTPS转发),注意代理地址仍用http://开头(因为是通过HTTP代理转发HTTPS请求):

    import requests
    
    proxy = {
        "http": "http://127.0.0.1:xxxx",
        "https": "http://127.0.0.1:xxxx"
    }
    
    try:
        # 必须加timeout,避免无响应时一直阻塞
        response = requests.get("https://www.google.com", proxies=proxy, timeout=5)
        print(f"请求成功,状态码: {response.status_code}")
    except requests.exceptions.RequestException as e:
        print(f"代理连接失败: {str(e)}")
    
  2. 捕获所有请求异常
    用requests.exceptions.RequestException可以统一捕获连接失败、超时、代理不可用等所有请求相关的异常,确保能准确检测到代理的问题。

  3. 验证代理可用性
    当代理未运行时,上述代码会抛出类似ConnectionRefusedError的异常,你就能准确判断该代理不可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 19:08:13