requests.post报HTTPConnectionPool错误求助:移除代理后问题仍存在
排查requests.post代理残留问题的解决步骤
1. 清理代码中的代理配置
- 检查代码里是否硬编码了
proxies参数,比如:
直接删除proxies = {"http": "http_proxy=", "https": "http_proxy="} requests.post(url, proxies=proxies)proxies参数,或者将其设置为空字典{}。
2. 重置系统环境变量中的代理
- Windows:打开命令行执行
set http_proxy和set https_proxy,若输出有值,用set http_proxy=和set https_proxy=清空,重启终端后再运行代码。 - Linux/macOS:终端执行
echo $http_proxy和echo $https_proxy,若有值则用unset http_proxy和unset https_proxy临时清空;同时检查~/.bashrc、~/.zshrc等配置文件,删除代理相关的export语句,执行source ~/.bashrc(对应你的shell配置文件)生效。
3. 重置requests全局会话代理
- 若代码中使用了
requests.Session(),检查是否设置了全局代理:
直接重置会话代理:session = requests.Session() session.proxies.update({"http": "http_proxy="})session.proxies = {},或者新建一个干净的Session对象。
4. 排查后台代理工具残留
- 确认VPN、代理客户端等软件已完全退出,检查系统设置里的代理选项(Windows:设置→网络和Internet→代理;macOS:系统设置→网络→高级→代理),确保所有代理开关都处于关闭状态。
5. 用极简代码验证
- 运行以下最小化测试代码,排除其他代码干扰:
若这段代码正常返回状态码,说明问题出在原有代码的其他配置中;若仍报错,继续排查系统层面的代理残留。import requests try: resp = requests.post("https://httpbin.org/post") print(resp.status_code) except Exception as e: print(e)
内容的提问来源于stack exchange,提问作者Halk Bank
相关产品推荐
相关产品推荐

