2015-09-09 26 views
6

所以我使用rabbitmqs http api在兔子身上做了一些非常基本的操作。它在大多數情況下效果很好,但是我有一個問題,想知道如何使用它將消息發佈到默認的rabbitmq交換。此交換總是存在的,不能被刪除,並且具有與隊列名稱相等的路由鍵的每個隊列的綁定。使用http api發佈到默認rabbitmq交換

我的問題是,這個隊列沒有名字,或者說,它的名字是一個空字符串「」。我必須使用URL來發布帶有HTTP API的消息,包括交換的名稱。

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

同一篇文章中提到,爲了使用具有的「/」的名稱默認的虛擬主機,你必須到位虛擬主機名稱的使用%2F。這讓我覺得應該有一種類似的方式來表示URL中的默認交換。

我嘗試了一些不同的事情,他們沒有工作:

/api/exchanges/vhost//publish 
/api/exchanges/vhost/""/publish 
/api/exchanges/vhost/''/publish 
/api/exchanges/vhost/ /publish 
/api/exchanges/vhost/%00/publish 

我肯定不能是已經運行到這個問題的唯一的人。任何幫助將非常感激。

感謝, 湯姆

回答

12

這是發佈消息amq.default方式:

http://localhost:15672/api/exchanges/%2f/amq.default/publish

這身

{"properties":{}, 
"routing_key":"queue_test", 
"payload":"message test ", 
"payload_encoding":"string"} 

routing_key是隊列,您將發佈消息。

在插件使用的是Chrome下面的例子:

enter image description here

+1

這就是它!我知道這會是一件簡單的事情。 非常感謝! –

+0

如何添加消息發佈標題? –