无法使用它的HTTP API将消息发布到RabbitMQ中的队列

时间:2017-08-24 21:19:38

标签: rest rabbitmq

我正在使用REST API http://192.168.99.100:32787/api/exchanges/%2f/amq.direct/publish 将消息发布到我的helloworld.q队列。

有效载荷:

{"properties":{},"routing_key":"","payload":"Hello World","payload_encoding":"string"}

我没有创建任何新的交换。我不确定要指定哪个交换,因此在其余网址中使用了amq.direct。我已经提供了基本身份验证凭据,我收到了来自API的响应。

{
    "routed": false
}

不确定是什么错误。

可以在此处找到有关如何使用它的HTTP API的最新文档。 https://rawcdn.githack.com/rabbitmq/rabbitmq-management/rabbitmq_v3_6_11/priv/www/api/index.html

1 个答案:

答案 0 :(得分:3)

你有两种方法可以做到这一点:

  • 您可以使用默认交换并将队列名称指定为路由键(否则RabbitMQ不知道您希望消息发送到哪个队列):

    POST /api/exchanges/%2f//publish HTTP/1.1 {"properties":{},"routing_key":"helloworld.q","payload":"Hello World","payload_encoding":"string"}

  • 或者您明确地将其发送到amq.direct交换,但是您必须在发布消息之前在helloworld.qamq.direct之间创建绑定。您发布的消息的路由密钥也必须与您在绑定上指定的路由密钥匹配。