2017-08-24 1 views
0

Ich verwende die REST-API http://192.168.99.100:32787/api/exchanges/%2f/amq.direct/publish , um eine Nachricht an meine helloworld.q Warteschlange zu veröffentlichen.Nicht in der Lage, eine Nachricht in RabbitMQ mit seiner HTTP-API zu veröffentlichen.

Nutzlast:

{"properties":{},"routing_key":"","payload":"Hello World","payload_encoding":"string"} 

Ich habe keinen neuen Austausch geschaffen. Ich war mir nicht sicher, welche Umtauschnummer amq.direct in der Rest-URL angegeben wurde. Ich habe die Basic Auth-Anmeldeinformationen bereits angegeben und erhalte folgende Antwort von der API.

{ 
    "routed": false 
} 

Nicht sicher, was falsch ist.

Die neueste Dokumentation zur Verwendung der HTTP-API finden Sie hier. https://rawcdn.githack.com/rabbitmq/rabbitmq-management/rabbitmq_v3_6_11/priv/www/api/index.html

+0

Können Sie eine vollständige Kopie der gesendeten Anforderung (einschließlich der Anfrage) hinzufügen? – Nicolas

+0

Sorry, gerade aktualisiert. Ich hätte das vor sich selbst hinzufügen sollen. – user2325154

Antwort

1

Sie haben zwei Möglichkeiten, diese Arbeit zu machen:

  • Entweder Sie den Standard-Austausch verwenden und Ihre Warteschlangennamen als Routing-Schlüssel angeben (sonst RabbitMQ hat keine Ahnung, über die Sie mehr Warteschlange möchten, dass Ihre Nachricht an go):

    POST /api/exchanges/%2f//publish HTTP/1.1 {"properties":{},"routing_key":"helloworld.q","payload":"Hello World","payload_encoding":"string"}

  • Oder Sie es explizit auf die amq.direct Austausch schicken, aber dann haben Sie eine Bindung betw erstellen een helloworld.q und amq.direct vor dem Veröffentlichen der Nachricht. Der Routing-Schlüssel der Nachricht, die Sie veröffentlichen, muss mit der Nachricht übereinstimmen, die Sie auch für die Bindung angegeben haben.

+0

Perfekt, die erste Lösung funktioniert :) Danke! – user2325154

Verwandte Themen