2015-09-09 14 views
6

したがって、私はrabbitmqs http apiを使用して、ウサギでいくつかの非常に基本的な操作を行います。ほとんどの状況でうまく動作しますが、メッセージをデフォルトのrabbitmqエクスチェンジに公開するためにどのように使用するかの問題を抱えています。この交換は常に存在し、削除できず、キュー名と同じルーティングキーを持つすべてのキューにバインドされています。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

同じ記事では、「/」の名前を持つデフォルトのバーチャルホストを使用するために、あなたはバーチャルホスト名の代わりに%2fとを使用しなければならないことに言及しています。これにより、URLにdeafault exchangeを表現するのと同様の方法があるはずだと私は思います。

私はいくつかの異なるものを試してみましたが、それらのどれも働いた:

/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はあなたが公開するキューですメッセージ。

クロームプラグインの使用例を次に示します。

enter image description here

+1

それです!私はそれがそれのような単純なものであることを知っていた。 ありがとうございました! –

+0

メッセージパブリッシュヘッダーをどのように追加しますか? –

関連する問題