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

标签 api http rabbitmq persistent

我想通过 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

我的队列是持久化的,deliverymode也设置为2(Persistent),但是发布的消息不是持久化的。需要做什么改变? 当我通过管理控制台发送相同的消息时,消息是持久的,但不是通过 HTTP API。

最佳答案

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

关于api - 通过 HTTP API 在 RabbitMQ 中发送持久消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067467/

相关文章:

java - 在 Vaadin 项目中创建 API

python - Celery/RabbitMQ/Django 没有运行任务

python - 如何使用鼠兔通过rabbitmq发送文件?

actionscript-3 - 尝试通过套接字发送 HTTP 请求

http - 如何解决在 302 重定向时将 POST 更改为 GET?

c# - 获取 MassTransit 消息重试次数

rest - Openid 和 RestFul API

linux - 如何从linux api中已知的uid获取用户名?

java - 如何限制每个客户的 Jersey 配额

http - 伪造 HTTP Get 请求下载图片