我正在尝试在一个简单的 Spring MVC Web 应用程序上发送一个 post 请求,并RequestBody在我的控制器中使用它来将 JSON 转换为 Java 对象,但无论出于何种原因,我不断收到HTTP Status 415 – Unsupported Media Type. 我花了很多时间试图找到解决方案,但似乎没有任何效果。我的控制器中的 get 方法似乎工作正常。这是我的原始代码import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.*;@Controller@RequestMapping(value = "/users", method = RequestMethod.POST)public class MyControllerAgain { @RequestMapping(method = RequestMethod.POST, consumes = "application/json") public void handleJson(@RequestBody Contact c) { System.out.println(c); } @RequestMapping(method = RequestMethod.GET, consumes = "application/json") public void handleGet() { System.out.println("a"); }}这是我的 Contactpublic class Contact { int id; public String name; public int number; public Contact(){} // Getters and setters}我正在向 Postman 发送请求,这就是它的样子POST /users HTTP/1.1Host: localhost:8080Content-Type: application/jsonAccept: application/jsonCache-Control: no-cachePostman-Token: 511c9e03-4178-380d-58f8-db24a3245b9e{ "id":1, "name":"something", "number":1}我还尝试在我的pom.xml. 我曾尝试更改@RequestMapping注释中的消耗值,并且在我的请求中尝试了标头接受和内容类型的所有组合。另外,如果我使用@ModelAttribute而不是@RequestBody,那么除了Contact类中的所有字段都为空之外,一切正常。这是 github 链接 - https://github.com/Sanil2108/test_springmvc
3 回答
守着星空守着你
TA贡献1799条经验 获得超8个赞
尝试了一切,但无法正常工作。也许我在某个地方犯了一个愚蠢的错误,或者我的配置存在严重错误。无论如何,我试图让它与 Spring boot 一起工作,并且工作正常。对于任何有兴趣的人,这是 github 链接 - https://github.com/Sanil2108/spring_hibernate/tree/master/spring_boot1
另外,感谢所有试图提供帮助的人!
森林海
TA贡献2011条经验 获得超2个赞
对我来说,jpa 注释似乎弄乱了 json 反序列化。
从 spring 服务器返回的错误可能会产生误导。尝试使用带有 setter 和 getter 的普通对象,看看这是否会改变任何东西。您应该在日志中搜索一些异常。
添加回答
举报
0/150
提交
取消