如何使用 Web 插件将 JSON 有效负载发送到 RabbitMQ?

2022-01-11 00:00:00 python json queue rabbitmq

问题描述

我有一个安装了 Web 管理插件的

我在接收端收到以下错误:

operation_id = payload['operationId']TypeError:字符串索引必须是整数

我尝试添加 content-type 标头和属性,但没有成功.

由于阅读器代码相同,表示网络发送方没有将发送的消息标记为JSON/字典载荷,因此在另一端读取为字符串.

知道如何使用 RabbitMQ Web 控制台将消息标记为 JSON 消息吗?

解决方案

我不得不使用 content_type 而不是 content-type(下划线而不是连字符).

这是一个非常值得怀疑的设计决定,因为每个人都知道的标准是

I have a RabbitMQ 3.4.2 instance with a web management plugin installed.

When I push to the message {'operationId': 194} to the queue using Python's kombu queue package, the message is read on the other end as a dictionary.

However, when I send the message using the web console:

I get the following error on the receiving end:

operation_id = payload['operationId']
TypeError: string indices must be integers

I have tried adding a content-type header and property, with no success.

Since the reader code is the same, it means that the web sender does not mark the sent message as a JSON / dictionary payload, and therefore it is read as a string on the other end.

Any idea how to mark a message as a JSON message using the RabbitMQ web console?

解决方案

I had to use content_type instead of content-type (an underscore instead of a hyphen).

This is a pretty questionable design decision, because the standard everybody knows is content-type.

相关文章