web-dev-qa-db-ja.com

http apiを使用してデフォルトの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を使用するには、vhost名の代わりに%2fを使用する必要があると述べています。これにより、デフォルトの交換をURLで表すための同様の方法があるはずだと思います。

私はいくつかのことを試しましたが、どれもうまくいきませんでした:

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

この問題に遭遇したのは私だけではないはずです。どんな助けでも大歓迎です。

ありがとう、トム

17
Tom Turner

これは、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

24
Gabriele