Spring Cloud 版本 Hoxton.SR5 默认将 XML 格式作为 HTTP 响应

Posted

技术标签:

【中文标题】Spring Cloud 版本 Hoxton.SR5 默认将 XML 格式作为 HTTP 响应【英文标题】:Spring Cloud version Hoxton.SR5 is giving XML format as HTTP response by default 【发布时间】:2020-10-18 15:09:53 【问题描述】:

当我在 Spring Boot 应用程序中使用 <spring-cloud.version>Hoxton.SR5</spring-cloud.version> 时,默认情况下它会在 HTTP 响应中返回 XML 格式:

<List>
    <item>
        <productId>1</productId>
        <productName>Samsung LED TV</productName
        <quantity>100</quantity
        <itemType>TV</itemType>
        <itemGroup>Entertainement</itemGroup>
    </item>
</List>

当我使用 &lt;spring-cloud.version&gt;Hoxton.SR3&lt;/spring-cloud.version&gt; 时,它返回 JSON 格式:

[
    
        "productId": 1,
        "productName": "Samsung LED TV",
        "quantity": 100,
        "itemType": "TV",
        "itemGroup": "Entertainement"
    
]

          

Hoxton.SR5 默认返回 XML 格式有哪些变化?如何确保在使用 Hoxton.SR5 时获得 JSON 格式?

【问题讨论】:

是的,Hoxton.SR4 和 Hoxton.SR5 之间发生了一些变化,这里有一个类似的问题***.com/questions/62929410/… 另外,我看到如果没有指定 Accept 标头,Spring Boot 会使其 Accept: [application/xml, text/xml, application/json, application/*+xml, application/*+json ],优先考虑application/xml。一种可能的解决方案是手动指定 Accept 标头 Accept: [application/json] 【参考方案1】:

在我的情况下,它是由 eureka-client 升级引起的,它将 jackson-dataformat-xml 带到类路径。

【讨论】:

以上是关于Spring Cloud 版本 Hoxton.SR5 默认将 XML 格式作为 HTTP 响应的主要内容,如果未能解决你的问题,请参考以下文章

将 Spring Cloud 版本从 Edgware 升级到 Hoxton

从 Hoxton.SR4 升级到 Spring Cloud Hoxton.SR7 后遇到错误

翻车!Spring Boot 2.2.3 不兼容 Spring Cloud Hoxton.SR1

Spring Cloud Stream kafka 指标未显示在执行器指标中 | Spring Boot 2.2.2 | Spring Cloud Hoxton.SR4

Spring Cloud Hoxton.SR5 与 Eureka 和 WebFlux 的问题:超过了缓冲区的最大字节数限制

Spring Cloud 微服务基础功能架构来啦~