Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
如何仅将Spring Resttemplate与JSON一起使用_Json_Spring_Http_Resttemplate - Fatal编程技术网

如何仅将Spring Resttemplate与JSON一起使用

如何仅将Spring Resttemplate与JSON一起使用,json,spring,http,resttemplate,Json,Spring,Http,Resttemplate,我有一个rest服务,它以XML或JSON提供信息。我使用SpringRESTTemplate将我的应用程序连接到此服务。不幸的是,我的回答都是XML格式,而不是首选的JSON格式。我对请求的分析是,Spring Resttemplate发送带有以下Accept标头的请求: Accept: application/xml, text/xml, application/*+xml, application/json 我的rest服务对第一个接受类型的响应。这是allways applicatio

我有一个rest服务,它以XML或JSON提供信息。我使用SpringRESTTemplate将我的应用程序连接到此服务。不幸的是,我的回答都是XML格式,而不是首选的JSON格式。我对请求的分析是,Spring Resttemplate发送带有以下Accept标头的请求:

Accept: application/xml, text/xml, application/*+xml, application/json
我的rest服务对第一个接受类型的响应。这是allways application/xml

如何更改Accept类型以便只获得json响应?RestTemplate的bean定义中是否有一些属性


为此,我使用Spring 3.1。

您需要设置一个可用于
RestTemplate
HttpMessageConverter
列表,以覆盖默认列表:

 RestTemplate rest = new RestTemplate();
 rest.setMessageConverters(Arrays.asList(new MappingJacksonHttpMessageConverter()));

如果在XML中定义
RestTemplate
,请在XML语法中执行相同的操作。

如果您只想使用JSON或发送JSON,本主题不太清楚。 在第一种情况下(消费),您可以使用

@RequestMapping(value="/path", headers = "Accept=application/json")
在生成时,您必须使用contentType进行响应尝试:

HttpHeaders headers = new HttpHeaders();
        headers.add("Accept", "application/json");

        ResponseEntity.status(HttpStatus.OK)
                        .contentType(MediaType.APPLICATION_JSON)
                        .headers(headers);

我已经这样定义了rest模板:但是Accpet头仍然是:接受:application/xml,text/xml,application/*+xml,application/json@adrian:不可能。也许您使用了不同的
restemplate
实例。您是对的。还有另一个rest模板bean。很抱歉,您的解决方案在新版本中运行良好,尽管它是:MappingJackson2HttpMessageConverter.class