RabbitMQ REST HTTP JSON有效负载

问题描述 投票:3回答:3

我正在尝试使用RabbitMQ HTTP REST客户端将消息发布到队列中。我正在使用以下网址和请求

http://xxxx/api/exchanges/xxxx/exc.notif/publish

{
 "routing_key":"routing.key",
  "payload":{

  },
 "payload_encoding":"string",
 "properties":{
   "headers":{
     "notif_d":"TEST",
     "notif_k": ["example1", "example2"],
     "userModTime":"timestamp"
   }
 }
}

从兔子身上得到以下回应:

{"error":"bad_request","reason":"payload_not_string"}

我只有一个标题集:

Content-Type:application/json

我试图设置

"payload_encoding":"base64",

但它没有帮助。我是兔子新手,欢迎任何回复。

json rest rabbitmq
3个回答
2
投票

试试吧

{
"properties": {
"content-type": "application/json"
},
"routing_key": "testKey",
"payload": "1234",
"payload_encoding": "string"
}

0
投票

工作实例。我们需要简单的逃避双引号。

{
    "properties": {},
    "routing_key": "q_testing",
    "payload": "{
        \"message\": \"message from terminal\"
    }",
    "payload_encoding": "string"
}

0
投票

我设法使用下划线“_”而不是破折号发送内容类型。

有关有效属性的列表,请参阅here。有关示例,请参阅RabbitMQ Management HTTP API

要使用curl将一个json消息发布到rabbitmq exchange:

curl -i -u guest:guest -XPOST --data '{"properties":\
{"content_type":"application/json"}, \
"routing_key":"", \
"payload":"{\"foo\":\"bar\"}",\
"payload_encoding":"string"}' \
"http://localhost:15672/api/exchanges/%2f/exchange_name/publish"

content_type是使用下划线写的,routing_key是空的,用来发送消息到交换,而不是特定的队列。

© www.soinside.com 2019 - 2024. All rights reserved.