使用HTTP API时,我试图调用aliveness-test进行监视。目前我正在使用curl和以下命令进行测试:
curl -i http://guest:guest@localhost:55672/api/aliveness-test/
我收到以下回复:
HTTP/1.1 404 Object Not Found
Server: MochiWeb/1.1 WebMachine/1.9.0 (someone had painted it blue)
Date: Mon, 05 Nov 2012 17:18:58 GMT
Content-Type: text/html
Content-Length: 193
<HTML><HEAD><TITLE>404 Not Found</TITLE></HEAD><BODY><H1>Not Found</H1>The requested document was not found on this server.<P><HR><ADDRESS>mochiweb+webmachine web server</ADDRESS></BODY></HTML>
当发出请求只是为了列出用户或vhost时,请求成功返回:
$ curl -I http://guest:guest@localhost:55672/api/users
HTTP/1.1 200 OK
Server: MochiWeb/1.1 WebMachine/1.9.0 (someone had painted it blue)
Date: Mon, 05 Nov 2012 17:51:44 GMT
Content-Type: application/json
Content-Length: 11210
Cache-Control: no-cache
我正在使用RabbitMQ的最新稳定版本(2.8.7),并且显然已经为API安装了管理插件来处理用户调用(由于它包含公司数据但是只是常规的JSON如预期的那样。)
互联网上没有太多关于这个电话失败的消息,所以我想知道是否有人之前看过这个电话?
谢谢, 克里斯蒂安
答案 0 :(得分:38)
事实证明,即使作为URL的一部分,vhosts名称开头的'/'也不是隐含的。为了实现这一点,我只是改变了我的请求:
curl -i http://guest:guest@localhost:55672/api/aliveness-test/
要
curl -i http://guest:guest@localhost:55672/api/aliveness-test/%2F
由于%2F是'/'HTTP编码,我的请求现在查询名为'/'的vhost并返回200响应,如下所示:
{"status":"ok"}