我正在尝试使用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",
但它没有帮助。我是兔子新手,欢迎任何回复。
答案 0 :(得分:2)
尝试
{
"properties": {
"content-type": "application/json"
},
"routing_key": "testKey",
"payload": "1234",
"payload_encoding": "string"
}
答案 1 :(得分:0)
工作示例。我们需要简单的转义双引号。
{
"properties": {},
"routing_key": "q_testing",
"payload": "{
\"message\": \"message from terminal\"
}",
"payload_encoding": "string"
}
答案 2 :(得分:0)
我设法使用下划线“ _”(而不是破折号)发送内容类型: 有关有效属性的列表,请参见here。
{
"properties": {
"content_type":"application/json" // underscore "_" here!
},
"routing_key": "", // for all queues in exchange
"payload": "{
\"message\": \"message from terminal\"
}",
"payload_encoding": "string"
}
我正在将Java spring amqp与Jackson2JsonMessageConverter一起使用以接收消息。
答案 3 :(得分:0)
要使用JSON格式的有效负载,您必须在base64中对其进行编码,并使用viewModel.getAllDrinks.observe(this, Observer { drinks -> adapter.updateData(drinks)}
属性。