【发布时间】:2014-10-24 15:13:32
【问题描述】:
如果有更简单、更简洁的方法,请告诉我。我正在尝试复制此调用:
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()
但是,这似乎不起作用,因为我得到了:
File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 401: Unauthorized
curl 命令的输出返回一个字符串列表(例如,["a","b","c"])——理想情况下,我想以某种方式将其存储到 python 列表中,但我无法超越第一位。
我做错了什么?
【问题讨论】:
-
是的。使用请求库。 docs.python-requests.org/en/latest
-
与@VincentBeltman 相同,Python 的 HTTP 处理级别相当低。您希望在大多数情况下使用 3rd 方模块。
-
“清洁工”是相当主观的。我建议我们以基于意见的方式关闭它。已标记。
-
@DanielAmaya - 你读过这个问题吗?
-
@DanielAmaya - 不,您没有阅读我的问题。问题本身与我在问题正文中的第一个陈述无关。在标记之前阅读第一行。
标签: python curl httprequest