RestTemplate接收html内容类型而不是json
我正在尝试访问rest Web服务,该服务以以下方式返回json字符串:RestTemplate接收html内容类型而不是json,html,json,spring,Html,Json,Spring,我正在尝试访问rest Web服务,该服务以以下方式返回json字符串: HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); HttpEntity<String> entity = new HttpEntity<String>(request.getRequest(RequestFormat.JSON),headers); MyBean r
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(request.getRequest(RequestFormat.JSON),headers);
MyBean response = template.postForObject(endpoint.toURI(), entity,MyBean.class);
@Bean
public RestTemplate restTemplate() {
RestTemplate template = new RestTemplate(clientHttpRequestFactory());
List<HttpMessageConverter<?>> converters = template.getMessageConverters();
for(HttpMessageConverter<?> converter : converters){
if(converter instanceof MappingJackson2HttpMessageConverter){
try{
converter.getSupportedMediaTypes().add(MediaType.TEXT_HTML);
}catch(Exception e){
e.printStackTrace();
}
}
}
return template;
}
这是因为我联系的Web服务不会返回application/json内容类型的响应,而是text/html
因此,我尝试通过以下方式将媒体类型添加到RestTemplate:
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<String>(request.getRequest(RequestFormat.JSON),headers);
MyBean response = template.postForObject(endpoint.toURI(), entity,MyBean.class);
@Bean
public RestTemplate restTemplate() {
RestTemplate template = new RestTemplate(clientHttpRequestFactory());
List<HttpMessageConverter<?>> converters = template.getMessageConverters();
for(HttpMessageConverter<?> converter : converters){
if(converter instanceof MappingJackson2HttpMessageConverter){
try{
converter.getSupportedMediaTypes().add(MediaType.TEXT_HTML);
}catch(Exception e){
e.printStackTrace();
}
}
}
return template;
}
如何将该内容类型转换为json
谢谢 如您所见,
getSupportedMediaTypes()
返回一个不可变列表。您应该改用setSupportedMediaTypes()