python - 请求需要密码认证的http数据

标签 python curl httprequest

如果有更简单、更简洁的方法,请告诉我。我正在尝试复制此调用:

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/

相关文章:

python - 如何为基于多个分隔符的拆分添加约束?

web-services - 如何在 REST Web 服务中放置多个查询参数

java - 我想使用java将json文件发送到elasticsearch

ios - 即使在重置授权 header 后,NSURLConnection 也会返回缓存的响应

javascript - 如何修复我的 POST 函数代码可以与服务器通信?

python - 在 python 中为 float + obj 覆盖 + 运算符

python - 在 Ubuntu 上安装 OpenCV for Python,得到 ImportError : No module named cv2. cv

python - 两个排序数组的中位数 - 以下代码有什么问题?

php - 缺少 Paypal 付款操作

php - 使用 curl 和 php 脚本上传图像和文本