首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >spring-stream发送一个内容类型为"text/plain“的消息,而不是"application/json”。

spring-stream发送一个内容类型为"text/plain“的消息,而不是"application/json”。
EN

Stack Overflow用户
提问于 2017-11-28 22:44:46
回答 2查看 1.3K关注 0票数 0

我希望使用内容类型application/json在我的队列上生成响应,因为有效负载包含json对象。

但是..。

不知道为什么我的spring-stream (基于RabbitMQ)总是生成具有以下头的消息(有效负载是正确的,并且具有JSON形式)。

(view from rabbit ui)
properties:
    delivery_mode:  2
    headers:    
      contentType:  text/plain
      originalContentType:  application/json;charset=UTF-8
    content_type:   text/plain

因此,content_type等于文本/纯,而不是application/json;charset=UTF-8.

我尝试在如下配置中设置内容类型的

spring:
  cloud:
    stream:
      default:
        content-type: application/json
      bindings:
        my-channel:
          content-type: application/json
          destination: my-channel-rs
          producer:
            exchange-type: direct
            max-length: 1000

但是没有帮助。

我的感觉是,在正确的响应中,单个头部content-type应该以"application/json“的值存在。

但也许我错了?有没有人能解释上面的行为?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-28 22:58:32

您使用的似乎是1.3版本的S-C-Stream。你能确认一下吗?我们当然可以看一看。另外,顺便说一句,只要你有一个消费者是SCSt应用程序(因为它将被重置为你所期望的),整个'originalContentType‘问题就不是问题,但我假设它不是问题,对吗?

另外,有可能升级到2.0.0.M3。在contentType解析方面已经有了很多改进。

票数 2
EN

Stack Overflow用户

发布于 2018-06-10 02:46:48

我也遇到过类似的问题。我需要底层的spring-amqp使用" content - type“头来设置实际的内容类型。Spring-amqp通过检查消息有效负载的类来解决这个问题,而不考虑"content-type“头。

我创建了一个可能被接受也可能不被接受的拉取请求:https://github.com/spring-projects/spring-amqp/pull/763/commits/25e4f9adf523a802ac5f26dd373eff8bb764fb49

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47534318

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档