报错 no suitable HttpMessageConverter found for request type

报错Could not write request: no suitable HttpMessageConverter found for request type [java.util.HashMap] and content type [application/json;charset=UTF-8]

RestTemplate访问的时候遇到一个问题
Could not write request: no suitable HttpMessageConverter found for request type [java.util.HashMap] and content type [application/json;charset=UTF-8]

然后排查借鉴发现问题是 RestTemplate 不支持[application/json;charset=UTF-8]

解决方法:
1.自定义HttpMessageConverter, 加入加入text/html类型的支持
导入jar包:
jackson-core-2.9.8.jar
jackson-databind-2.9.8.jar
jackson-annotations-2.9.0.jar

// An highlighted block
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;

import java.util.ArrayList;
import java.util.List;

public class MyMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
    public MyMappingJackson2HttpMessageConverter(){
        List<MediaType> mediaTypes = new ArrayList<>();
        mediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);  //加入text/html类型的支持
        setSupportedMediaTypes(mediaTypes);
    }
}

2.将自定义的Converter加入restTemplate的messageConverters list中

// An highlighted block
RestTemplate template = new RestTemplate();
template.getMessageConverters().add(new MyMappingJackson2HttpMessageConverter());
HttpHeaders headers = new HttpHeaders();

报错已解决。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值