RestTemplate如何解决"响应结果中的响应头为content-type:text/plain;charset=utf-8"数据类型转换失败呢?
今天使用RestTemplate请求接口时,出现数据转换失败的异常
Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.list] and content type [text/plain;charset=utf-8] =================================== 通过以上的错误代码,我们可以得出RestTemplate处理不了 这种数据类型,那么RestTemplate如何解决此类问题呢?下文笔者将一一道来,如下所示
只需自定义一个消息装换器
让RestTemplate支持content-type:application/json'charset=utf-8数据转换
/**
* RestTemplate配置类
*/
@Slf4j
@Configuration
public class RestTemplateConfig {
/**
* 常用远程调用RestTemplate
* @return restTemplate
*/
@Bean("restTemplate")
public RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
// 加入自定义信息转换
restTemplate.getMessageConverters().add(new MyMappingJackson2HttpMessageConverter());
return new RestTemplate();
}
/**
* 使RestTemplate支持转换类型为text/plain的数据
*/
public static class MyMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter{
public MyMappingJackson2HttpMessageConverter(){
List<MediaType> mediaTypes = new ArrayList<>();
// 加入text/plain类型的支持
mediaTypes.add(MediaType.TEXT_PLAIN);
// 如果还有其他类型的需要装换,可以一一加上
setSupportedMediaTypes(mediaTypes);
}
}
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


