springboot使用RestTemplate报错:Could not extract response: no suitable HttpMessageConverter found for response type [class xx] and …
spring boot版本大于1.4的时候,spring boot不会再自动装配定义一个RestTemplate,需要手动创建,用一下代码新建就会报上错误等
-
可能出问题代码:
@Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.build(); }
-
正确代码示例:
@Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { //先获取到converter列表 List<HttpMessageConverter<?>> converters = builder.build().getMessageConverters(); for(HttpMessageConverter<?> converter : converters){ //因为我们只想要jsonConverter支持对text/html的解析 if(converter instanceof MappingJackson2HttpMessageConverter){ try{ //先将原先支持的MediaType列表拷出 List<MediaType> mediaTypeList = new ArrayList<>(converter.getSupportedMediaTypes()); //加入对text/html的支持 mediaTypeList.add(MediaType.TEXT_HTML); //将已经加入了text/html的MediaType支持列表设置为其支持的媒体类型列表 ((MappingJackson2HttpMessageConverter) converter).setSupportedMediaTypes(mediaTypeList); }catch(Exception e){ e.printStackTrace(); } } } return builder.build(); }
这样就ok了