【问题标题】:Orion Context Broker, subscription format "JSON"Orion Context Broker,订阅格式“JSON”
【发布时间】:2015-12-21 00:06:56
【问题描述】:

我正在对 contextBroker 进行简单的订阅,并且正在订阅我的节点应用程序。

subscribeContext

之后返回 200 状态 OK,并在 mongo、orion db 中插入该行。

问题是集合 csubs 格式中的字段是“XML”,并且在我的节点应用程序上,当我记录 contextBroker 发送它的正文时会记录这个 logs from node that is subscribed

空的身体。然后,当我将 mongo 中的格式更改为“JSON”时,一切正常。正文从 contextBroker 返回数据。

我的问题是,如何让 contextBroker 在格式字段中插入默认的“JSON”。

更新:

contextBroker 的版本是 0.26.1

更新

这里我尝试使用attributeFormat=object让它在格式字段中插入“JSON”,但它仍然是“XML”

【问题讨论】:

  • 能否编辑您的帖子以添加有关您正在使用的 Orion contextBroker 版本的信息(即curl <host>:<port>/version 命令的结果)?
  • 另外,请确保csubs 收藏之前没有任何可能给测试添加“噪音”的订阅。
  • 您是否还可以在帖子中包含 1) HTTP 请求行(动词 + URL)和操作中包含的 HTTP 标头(快照仅显示有效负载)以及 2) 您得到的响应suscribie 手术好吗?谢谢!

标签: fiware fiware-orion


【解决方案1】:

Orion Context Broker 根据与此类通知关联的订阅上下文操作的响应 使用的编码来选择通知的编码。请注意,在这种情况下,响应是 XML 格式的,因此您会收到 XML 格式的通知。

我猜你在响应中得到了 XML,因为订阅上下文请求中没有使用Accept HTTP 标头,这隐含的是Acccept: */*,这意味着客户端对编码没有偏好。在这种情况下,Orion 选择了 XML(由于遗留原因,需要保持与仅支持 XML 的旧 Orion 版本的向后兼容性)。

因此,这种情况有两种可能的解决方案:

  • (推荐)在订阅上下文请求中包含Accept: application/json
  • 添加 ?notifyFormat=json 以“强制”通知以 JSON 格式发送(例如 POST /v1/subscribeContext?notifyFormat=json),无论用于响应订阅上下文操作的编码如何。

旁注:ONTIMEINTERVAL 订阅(屏幕截图中显示的那个)have been deprecated。因此,我们鼓励您停止使用它们,改用 ONCHANGE。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    相关资源
    最近更新 更多