resttemplate无法接收[text/json;charset=UTF-8]

15 篇文章 0 订阅

resttemplate无法接收[text/json;charset=UTF-8]

报错信息:

org.springframework.web.client.UnknownContentTypeException: Could not extract response: no suitable HttpMessageConverter found for response type [class java.lang.Object] and content type [text/json;charset=UTF-8]

​ 开发中碰到的,给下游提供的接口传数据,刚开始用HashMap接接不到,换成Object还是接不到,那肯定是下游返回值有点问题了,下游是.net写的老项目,猜测很多地方和java有区别吧。

  • 这里直接说结论:

​ [text/json;charset=UTF-8]这个content-type,Resttemplate自带的转换器翻译不了,所以报了如上错误,解决方案是给RestTmplate添加相应的转换器。

  • 步骤如下
  1. 定义一个转换器类
public class TemplateMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
    public TemplateMappingJackson2HttpMessageConverter(){
        List<MediaType> mediaTypes = new ArrayList<>();
        mediaTypes.add(MediaType.valueOf("text/json;charset=UTF-8"));
        setSupportedMediaTypes(mediaTypes);
    }
}
  1. 这里分两种情况,如果项目没有对restTemplate进行统一配置,直接new出来的时候把这个转换器加进去就好了。代码:
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new TemplateMappingJackson2HttpMessageConverter());
  1. 如果是公司的项目的话,那大概率会对resttemplate进行统一配置,以bean的形式注入到Spring容器里,这个配置类要自己去找,类名可能是像RestTemplateConfig这种的,找到以后在相应的地方把这个转换器加进去就好了。
restTemplate.getMessageConverters().add(new TemplateMappingJackson2HttpMessageConverter());

重启项目,问题解决。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值