【发布时间】:2020-03-20 21:30:58
【问题描述】:
我正在尝试构建一个调用 Jolokia 提供的 ActiveMQ REST 管理 API 的 Python 3 服务,但我收到了 401 Unauthorized 响应。我的猜测是我错误地传递了身份验证数据。不幸的是,ActiveMQ REST documentation 示例与 curl 或 wget 并没有太大帮助。
import urllib.parse
import urllib.request
url = 'http://localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost,service=Health'
data = dict(user='admin', password='admin')
encoded_data = urllib.parse.urlencode(data)
encoded_data = encoded_data.encode('utf-8')
response = urllib.request.urlopen(url, encoded_data)
这是请求后引发的异常:
引发 HTTPError(req.full_url, code, msg, hdrs, fp) urllib.error.HTTPError:HTTP 错误 401:未经授权
成功验证的一种方法是使用 urllib2 和 python2 并在 URL 中传递用户信息,但我想以正确的方式而不是这样:http://admin:admin@localhost:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost,service=Health。
【问题讨论】:
-
@JustinBertram 对于 localhost 我得到了相同的结果。无论如何,我编辑了问题并将主机更改为
localhost。 -
@JustinBertram 非常感谢!我从您发布的链接中找到了解决方案。
标签: python-3.x urllib