Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RestTemplate接收html内容类型而不是json_Html_Json_Spring - Fatal编程技术网

RestTemplate接收html内容类型而不是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

我正在尝试访问rest Web服务,该服务以以下方式返回json字符串:

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()