【发布时间】:2017-05-05 22:20:34
【问题描述】:
问题
我无法让 python 请求库、easy_install 或 pip 在公司代理后面工作。但是,我可以让 git 工作。
我是如何让 git 工作的
我设置了 git 代理设置
git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
- 我工作的企业代理服务器需要用户名和密码,而且确实是这样的格式
http://username:password@ipaddress:port
- 我不必设置 https.proxy
我尝试过的事情
(都没有用)
环境变量 - Pip 和 Requests 库
方法一
$ export HTTP_PROXY="http://username:passsword@ipaddress:port"
$ export HTTPS_PROXY="http://username:passsword@ipaddress:port"
方法二
SET HTTP_PROXY="http://username:passsword@ipaddress:port"
SET HTTPS_PROXy="HTTPS_PROXY="http://username:passsword@ipaddress:port"
我尝试过设置代理变量后重新启动,设置代理变量后立即尝试
使用“SET”命令检查变量表明两者都设置正确
使用代理参数 - 请求库
使用代理信息创建字典并将其传递给 requests.get()
代理 = { 'http': 'http://username:passsword@ipaddress:port', 'https': 'http://username:passsword@ipaddress:port'}
requests.get('http://example.org', proxies=proxies)
使用代理参数 - pip
pip install library_name -–proxy=http://username:passsword@ipaddress:port
pip install library_name -–proxy=username:passsword@ipaddress:port
结果 - 请求库
回应
响应 [407]
原因
'需要代理授权'
标题信息
{'Proxy-Authenticate': 'NTLM', 'Date': 'Fri, 05 May 2017 21:49:06 GMT', 'Cache-Control': 'no-cache', 'Pragma': 'no -cache', '内容类型': 'text/html; charset="UTF-8"', 'Content-Length': '4228', 'Accept-Ranges': 'none', 'Proxy-Connection': 'keep-alive'}
结果 - 点数
连接后重试(Retry(total=4, connect=None, read=None, redirect=None)) 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connectio n 失败:407 需要代理授权',))'
注意:关于这篇文章,我在“http”和“://”之间的所有身份验证“链接”中都包含了一个空格,因为 stackoverflow 不允许我用这么多“链接”发布它'。
(我设置了一个新的 Stackoverflow 帐户,因为我的旧帐户是通过 facebook 登录的,我无法从工作中访问它)
【问题讨论】:
-
我知道这不是一个很有建设性的回复(这就是为什么它只是一个评论),但如果你的工作场所通过拦截所有流量和阻止某些网站让你的生活变得更加艰难,那么我会考虑开始寻找对于一个更值得信赖的雇主。
-
老实说,这可能是一个不错的选择。我刚从大学毕业并获得经验,所以我想我会坚持一段时间,然后当我的简历是甜一点。
-
您查看 requests-ntlm 了吗? github.com/requests/requests-ntlm
-
@schlenk 我试过 requests-ntlm,没有骰子。
标签: git proxy pip python-requests ntlm