2015-09-09 16 views
6

Używam więc rabbit apr http api, aby wykonać kilka podstawowych czynności w króliku. W większości sytuacji działa znakomicie, ale mam problem z jego wykorzystaniem do opublikowania komunikatu na domyślnej giełdzie rabbitmq. Ta wymiana jest zawsze obecna, nie można jej usunąć i ma powiązanie z każdą kolejką z kluczem routingu równym nazwie kolejki.Publikowanie do domyślnej wymiany rabbitmq za pomocą api http api

Mój problem polega na tym, że ta kolejka nie ma nazwy, a raczej jej nazwa jest pustym ciągiem "". Adres URL, którego muszę użyć, aby opublikować tę wiadomość za pomocą interfejsu API HTTP, zawiera nazwę wymiany.

http://localhost:15672/api/exchanges/vhost/name/publish (Źródło: http://hg.rabbitmq.com/rabbitmq-management/raw-file/rabbitmq_v3_3_4/priv/www/api/index.html)

Ten sam artykuł mówi, że w celu korzystania z domyślnego vhosta który ma nazwę „/”, należy użyć% 2f w miejsce nazwy vhost. To sprawia, że ​​myślę, że powinien istnieć podobny sposób reprezentowania wymiany nieumyślnej w adresie URL.

Próbowałem kilka różnych rzeczy, a żaden z nich nie pracował:

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

Jestem pewien, że nie może być jedyną osobą, która ma uruchomić w tej kwestii. jakakolwiek pomoc byłaby mile widziana.

Dzięki, Tom

Odpowiedz

12

ten sposób opublikować wiadomość do amq.default:

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

z tym ciałem

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

routing_key jest kolejka, gdzie można publikować wiadomość.

obserwuję przykład za pomocą chrome plug-in:

enter image description here

+1

To jest to! Wiedziałem, że to będzie coś prostego. Dziękuję bardzo! –

+0

Jak dodać nagłówki publikowania wiadomości? –

Powiązane problemy