如果有更简单、更简洁的方法,请告诉我。我正在尝试复制此调用:
curl -s -u user -k "https://10.10.10.10:8001/h/data/ps4"
此通话需要密码。我尝试模仿的做法是:
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
top_level_url = "https://10.10.10.10:8001"
password_mgr.add_password(None, top_level_url, 'user', 'pass')
handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(urllib2.HTTPHandler, handler)
request = urllib2.Request('https://10.10.10.10:8001/h/data/ps4')
print urllib2.urlopen(request).read()
但是,据我所知,这似乎不起作用:
文件“/usr/lib/python2.7/urllib2.py”,第 531 行,位于 http_error_default
引发HTTPError(req.get_full_url(),代码,msg,hdrs,fp)
urllib2.HTTPError:HTTP 错误 401:未经授权
curl 命令的输出返回一个字符串列表(例如,["a","b","c"]
)——理想情况下,我想将其存储到python list 不知何故,但我无法通过第一位。
我做错了什么?
最佳答案
如果您想使用requests
库,你可以这样做(来自 documentation ):
>>> from requests.auth import HTTPBasicAuth
>>> requests.get('https://api.github.com/user', auth=HTTPBasicAuth('user', 'pass'))
<Response [200]>
有一篇更详细的文章介绍了 requests
如何进行身份验证 here .
关于python - 请求需要密码认证的http数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26550896/