当前位置: 首页 > 知识库问答 >
问题:

Spring boot controller在响应头content-type设置为json时返回xml

淳于博
2023-03-14

我有两个Spring开机Rest服务。一个是json内容的生产者,另一个是消费者。

生产者关于控制器动作的相关代码如下:

@RequestMapping(value = "/cars", method = RequestMethod.POST)
public ResponseEntity<Cars> getCars(..methods params...){

 .....some code here.....

   HttpHeaders respHeader = new HttpHeaders();
   respHeader.set("Content-Type", "application/json");

   ResponseEntity<Cars> resp = new ResponseEntity<Cars>(cars, respHeader, HttpStatus.OK);
   return resp;

} 

在消费者Spring Boot服务代码中,我使用resTemplate调用这个endpoint并获得结果。如果您注意到上面的生产者代码,那么在RequestMapping属性中没有produces=“application/json”。但是,我在响应头中确实有Content-type作为“application/json”。

如果这个响应头没有任何作用,那么RequestMapping中的produces属性默认为xml而不是json吗?

共有1个答案

危璞
2023-03-14
@RequestMapping(value = "/cars", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Cars> getCars(..methods params...){

 .....some code here.....

   ResponseEntity<Cars> resp = new ResponseEntity<Cars>(cars, respHeader, HttpStatus.OK);
   return resp;

} 
 类似资料:
  • 我正在使用ASP.NET WebApi创建一个RESTful API。我正在我的一个控制器中创建一个PUT方法,代码如下所示: 当我通过AJAX使用浏览器将其放到该位置时,它给出了以下例外情况: 标头名称使用不当。确保请求标头与HttpRequestMessage一起使用,响应标头与HttpReponseMessage一起使用,内容标头与HttpContent对象一起使用。 但是不是一个完全有效的

  • 我试图使用javascript中的Fetch API向spring应用程序发送一些表单数据。我有以下代码来发送表单数据: 但是我得到一个415状态错误“不支持的媒体类型”。即使我将标头“Content-Type”专门设置为“Application/json”,它也会像“text/平原”一样发送 这是我从服务器得到的响应: 以下是在Spring中接受请求的方法: 我不知道为什么请求是以“text/p

  • 环境:nginx1.26.1 请求 CSS 文件,Content-Type 为 text/html 引用 css 的 html 代码为: nginx.conf 配置中相关部分: mime.types 与 nginx.conf 文件均存在于/etc/nginx下,nginx 已重载配置,错误记录与访问记录均无有用信息 尝试本站同类问题解决方案,无效 尝试清除浏览器记录,无效 希望加载 css 文件时

  • 问题内容: 测试golang网络应用程序时出现问题。在已部署的版本中,nginx位于应用程序的最前面,并进行显式设置,以便所有文本内容类型都附加一个字符集声明。 在测试中,我直接打了golang应用程序,这里的内容类型没有字符集。尝试提供类似d3这样的库时,这会导致问题: 由于golang未指定字符集,因此这些字符在chrome中呈现为: 使golang http服务器在HTTP标头上输出char

  • 我正在尝试使用Go语言向我的(magento)网络服务器发出请求。 我设法发出了一个POST请求,但是,我没有得到与从cmd使用CURL时相同的响应。我关注了这篇文章(如何在Golang中获取JSON响应),它没有给我任何响应。 所以我试了这个 这只是像这样返回http响应 当使用< code > curl-g-X POST " my . dev/index . PHP/rest/V1/guest

  • 问题内容: 我正在尝试编写一个AngularJS资源模块,它将一些数据发布到服务器。默认的内容类型似乎是“ application /xml”。我试图将内容类型覆盖为“ application / x-www-form-urlencoded”。当执行普通的$http.post()时,我可以设置内容类型,当我检入Firebug时,可以看到设置正确。当我使用资源的POST方法时,无法获得要从默认值更改