仅在POST请求中出现ProxyError,不在GET请求中

1 投票
1 回答
5047 浏览
提问于 2025-04-18 16:07
import requests

s = requests.session()
s.proxies = {'https': 'https://xxx.xxx.xxx.xxx:8888'}
s.get("https://www.tumblr.com/")
s.post("https://www.tumblr.com/")

用GET请求是没问题的,但用POST请求就会出现一个ProxyError错误。有人知道为什么吗?

ProxyError: 无法连接到代理。套接字错误:隧道连接失败:400 错误请求。

1 个回答

2

可能的原因是代理服务器错误地重置了连接,或者会话连接池无法理解连接已经关闭。如果你不需要连接池的话,可以使用

import requests

proxies = {'https': 'https://xxx.xxx.xxx.xxx:8888'}
requests.get("https://www.tumblr.com/", proxies=proxies)
requests.post("https://www.tumblr.com/", proxies=proxies)

更新。这和这个 问题 有关,显然将在即将发布的版本 > 2.3.0 中修复。目前,requests 的主分支也运行得很好。

撰写回答