错误信息:
org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [interface java.util.Map] and content type [text/html;charset=UTF-8]
错误原因:
默认构造的 MappingJackson2HttpMessageConverter 中的 supportedMediaTypes 只支持:application/json 的 MediaType。
解决方法:
新建一个类继承 MappingJackson2HttpMessageConverter,并追加加入对[text/html;charset=UTF-8]的支持
public class SzhMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
public SzhMappingJackson2HttpMessageConverter() {
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.TEXT_HTML); //加入text/html类型的支持
setSupportedMediaTypes(mediaTypes);
}
}
把SzhMappingJackson2HttpMessageConverter追加到RestTemplate 的 messageConverters 消息转换链中去:
@Bean
public RestTemplate restTemplate() {
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new SzhMappingJackson2HttpMessageConverter());
return restTemplate;
}