以下API调用RabbitMQ:
http -a USER:PASS localhost:15001/api/queues/
返回队列列表:
[
{
...
"messages_unacknowledged_ram": 0,
"name": "foo_queue",
"node": "rabbit@queue-monster-01",
"policy": "",
"state": "running",
"vhost": "/"
},
...
]
请注意,vhost
参数是/
。
如何使用/
vhost
进行/api/queues/vhost/name
调用,该调用返回特定队列的详细信息?
我试过:
localhost:15001/api/queues/\//foo_queue
localhost:15001/api/queues///foo_queue
但两者都失败了404 Object Not Found
:
2条答案
按热度按时间44u64gxh1#
URL Encoding做了这个把戏。URL应该是:
我认为REST资源不应该命名为
/
,特别是在默认情况下。ckocjqey2#
以原始答案(未找到)回答Avishake的问题。
你得到Not Found的原因是因为你应该用base替换**%2F**。Unicode编码是错误的方法。
请注意,当您查询所有队列时,vhost参数是/。
如果你用%2F替换/(unicode方法),你将无法找到。通过将/替换为base(非unicode方法),您将获得成功的响应。
错误:http://RabbitMQHost:port/api/sources/%2F/q. somequeue
正确http://RabbitMQHost:port/api/sources/base/q. somequeue