【发布时间】:2017-12-21 20:37:43
【问题描述】:
我的 SpringBoot 应用程序向外部 API 发出 HTTP 请求,所有这些都使用/生成 JSON。默认情况下,我的应用使用 Jackson 进行数据绑定,所有 HTTP 请求(使用 RestTemplate)显然都使用了 application/json 的 Accept 和 Content-Type 标头。
最近我需要使用 Jackson xml 数据绑定库(不适用于 http 数据绑定),因此我在应用程序中包含了该依赖项,似乎 SpringBoot 已决定对所有传出 HTTP 隐式使用 application/xml请求。
如何将应用程序配置为在发出 HTTP 请求时默认使用 JSON,而无需在每个请求的标头中显式设置?
【问题讨论】:
-
您找到解决方案了吗?我也遇到了同样的问题。
-
@RicardoPieper 你可以试试interceptor based solution?你试过了吗?
-
@RicardoPieper 也有点私人化,但我找到了this question。相同的问题,最近发布的,以及听起来像巴西人的姓氏 =) 那个人是你的同事吗?
-
@buræquete 这行不通。我们有许多 RestTemplate 的实例分布在运行时加载的许多存储库中(我们进行热重载),每个存储库都有一些初始化代码,这基本上涉及在某些时候编写
new RestTemplate()。我只是希望它继续选择使用 JSON 而不是 XML :( 不,我不认识那个人,但我会看看他的问题,看看有没有什么问题。他几天前发布了,我只是10 分钟前发现我有这个问题。 -
@RicardoPieper 您可以拥有一些基于 XML 的 RestTemplate 和一些基于 JSON 的 RestTemplate,而基于 JSON 的初始化逻辑将始终包含拦截器添加逻辑。那不行吗? +大声笑那真是巧合,我确定你们在同一家公司!我以为他是平民开发者,几周后问题升级到更高级的开发者
标签: spring spring-boot