即使 curl 工作,带有代理 407 状态代码的 Python 请求

Posted

技术标签:

【中文标题】即使 curl 工作,带有代理 407 状态代码的 Python 请求【英文标题】:Python requests with proxies 407 status code even though curl works 【发布时间】:2014-09-24 18:26:08 【问题描述】:

以下 curl 有效:

curl -vx proxy.example.com:8010 -U user:pass http://example.com

并返回有效内容,响应码为 200。

但是,通过 python 请求库使用的相同凭据会产生 407 状态代码(身份验证错误)。查看日志后,看起来用户从未通过(未定义)。

url = "http://example.com"
proxies = 'http': 'http://proxy.example.com:8010'
auth = HTTPProxyAuth("user", "pass")

resp = requests.get(url, proxies=proxies, auth=auth)

我正在使用请求库 2.3.0。

【问题讨论】:

也许您的代理使用的不是基本身份验证而是摘要身份验证?见How to pass proxy-authentication (requires digest auth) by using python requests module 【参考方案1】:

最终,通过在 URL 中使用“https”而不是“http”来解决问题。

我只能推测为什么这是解决方案:可能是请求库的不同版本或一些错误?我将研究这些问题,看看为什么会这样。

【讨论】:

以上是关于即使 curl 工作,带有代理 407 状态代码的 Python 请求的主要内容,如果未能解决你的问题,请参考以下文章

407 需要代理身份验证

远程服务器返回错误:(407) 需要代理身份验证

Android Studio:需要407代理身份验证

MobileFirst 推送通知代理 - 407 代理身份验证错误

需要 TFS PowerTools 代理身份验证 HTTP 代码 407

Firebug 控制台错误 HTTP 407 需要代理身份验证