我正在使用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
答案 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.q
和amq.direct
之间创建绑定。您发布的消息的路由密钥也必须与您在绑定上指定的路由密钥匹配。