报错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();
报错已解决。