通过HTTP API在RabbitMQ中发送持久化消息

13

我想通过HTTP API发送一个持久化消息。我正在使用这个命令:

curl -u UN:PWD -H "content-type:application/json" -X POST -d'{"properties":{},"routing_key":"QueueName","payload":"HI","payload_encoding":"string", "deliverymode": 2}' http://url:8080/api/exchanges/%2f/amq.default/publish

我的队列是持久的,并且传递模式也设置为2(持久性),但是发布的消息不是持久的。需要做什么更改? 当我通过管理控制台发送相同的消息时,它是持久的,但通过HTTP API发送不是持久的。

1个回答

27

delivery_mode 是一个属性,因此您需要将其放在 "properties" 中,如下所示:

curl -u guest:guest -H "content-type:application/json" -X POST -d'{"properties":{"delivery_mode":2},"routing_key":"QueueName","payload":"HI","payload_encoding":"string"}' http://localhost:15672/api/exchanges/%2f/amq.default/publish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接