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

Python requests查询代理后Prometheus报ProxyError问题求助

问题排查与解决方案

1 优先检查代理地址格式(最高发问题)

requests要求代理地址必须携带协议前缀,常见错误写法如下:

# 错误写法
http_proxy = "192.168.1.100:8080"
# 正确写法,绝大多数代理都用http前缀,即使是转发HTTPS流量
http_proxy = "http://192.168.1.100:8080"
https_proxy = "http://192.168.1.100:8080"

如果代理需要身份认证,地址格式为 http://用户名:密码@代理IP:端口。

2 验证VS Code集成终端环境变量

VS Code的集成终端可能不会自动继承系统的代理环境变量,可在代码开头加入以下打印语句确认配置:

import os
print("HTTP代理环境变量:", os.getenv("HTTP_PROXY"))
print("HTTPS代理环境变量:", os.getenv("HTTPS_PROXY"))
print("手动配置的代理字典:", proxies)

如果打印的代理值为空或不符合预期,可重启VS Code后重试,或直接在终端运行代码前手动设置环境变量:

# Linux/macOS终端
export HTTP_PROXY=http://你的代理地址:端口
export HTTPS_PROXY=http://你的代理地址:端口
python 你的脚本名.py

# Windows PowerShell
$env:HTTP_PROXY="http://你的代理地址:端口"
$env:HTTPS_PROXY="http://你的代理地址:端口"
python 你的脚本名.py

3 代理连通性测试

先通过公共站点验证代理本身是否可用,排除代理地址无效的问题:

import requests
proxies = {
    "http": "http://替换为你的实际代理地址",
    "https": "http://替换为你的实际代理地址"
}
try:
    res = requests.get("https://www.baidu.com", proxies=proxies, timeout=15, verify=False)
    print("代理连通成功,状态码:", res.status_code)
except Exception as e:
    print("代理连通失败:", e)

如果该测试失败,说明你的代理地址配置错误,可对比浏览器的代理配置调整,若浏览器使用PAC自动配置,需提取PAC规则中匹配Prometheus域名的代理地址填写。

4 可选优化方案

如果手动传proxies参数一直失效,可直接依赖requests的默认环境变量读取逻辑:删除代码中手动传proxies的参数,只要运行环境的HTTP_PROXY、HTTPS_PROXY环境变量配置正确,requests会自动读取使用。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:45:06