即使 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 请求的主要内容,如果未能解决你的问题,请参考以下文章
MobileFirst 推送通知代理 - 407 代理身份验证错误