使用http api发布到默认的rabbitmq交换

Tom*_*ner 14 api http amqp rabbitmq

所以我使用rabbitmqs http api在兔子做一些非常基本的动作.它在大多数情况下工作得很好,但是我有一个问题,想弄清楚如何使用它来发布消息到默认的rabbitmq交换.此交换始终存在,无法删除,并且具有与路由密钥等于队列名称的每个队列的绑定.

我的问题是这个队列没有名称,或者说,它的名字是一个空字符串"".我用来通过HTTP API发布此消息的URL包括交换的名称.

http:// localhost:15672/api/exchanges/vhost/name/publish (来源:http ://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_3_4/priv/www/api/index.html)

同一篇文章提到,为了使用名称为"/"的默认vhost,必须使用%2f代替vhost名称.这让我觉得应该有类似的方式来代表网址中的deafault交换.

我尝试了一些不同的东西,但没有一个起作用:

/api/exchanges/vhost//publish
/api/exchanges/vhost/""/publish
/api/exchanges/vhost/''/publish
/api/exchanges/vhost/ /publish
/api/exchanges/vhost/%00/publish
Run Code Online (Sandbox Code Playgroud)

我确信我不能成为遇到这个问题的唯一人.任何帮助将非常感激.

谢谢,汤姆

Gab*_*ele 22

这是将消息发布到的方式amq.default:

HTTP://本地主机:15672/API /交换/%2F/amq.default /发布

用这个身体

{"properties":{},
 "routing_key":"queue_test",
 "payload":"message test ",
 "payload_encoding":"string"}
Run Code Online (Sandbox Code Playgroud)

routing_key 是您将发布消息的队列.

下面是使用chrome插件的示例:

在此输入图像描述

  • 而已!我知道那样会很简单。非常感谢! (3认同)
  • 只是添加明显的内容,要发布到另一个虚拟主机,请将“%2f”部分替换为虚拟主机名称 (2认同)