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

Spring@RequestBody支持GET方法吗?

汝跃
2023-03-14

我正在尝试在HTTP GET请求消息中携带JSON数据,但我的Spring MVC服务器似乎无法从GET请求正文中检索JSON数据

共有2个答案

司寇瑾瑜
2023-03-14

基于官方信息https://docs . spring . io/spring-framework/docs/4 . 1 . 0 . RC2/spring-framework-reference/html/MVC . html

@RequestMapping("/something")
public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) throws UnsupportedEncodingException {
    String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader"));
    byte[] requestBody = requestEntity.getBody();
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.set("MyResponseHeader", "MyValue");
    return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
}
潘璞瑜
2023-03-14

HTTP 的 GET 方法不包括请求正文作为规范的一部分。Spring MVC尊重HTTP规范。具体来说,允许服务器丢弃正文。请求 URI 应包含制定响应所需的所有内容。

如果您需要请求正文,请将请求类型更改为POST,其中确实包括请求正文。

 类似资料:
  • 日志将输出以下内容。 2017-10-10 14:49:40.946警告5750---[nio-8080-exec-4]O.s.web.servlet.PageNotFound:不支持请求方法“Get”

  • 控制器中有以下代码 以及我的jsp中的以下代码。 当用户从cJobNms列表中选择选项时,所选值应显示在控制器方法showTestXsd中。请让我知道我做错了什么。 目前我收到一条消息:不支持请求方法“GET”

  • 我刚刚从graphdb 8.4.1升级到graphdb 8.8.1,效果非常好。然而,我无法通过sparql访问triple store并获取更多的[WARN]2019-03-19 21:08:20090[http-nio-7200-exec-8 | o.s.w.s.PageNotFound]请求方法“GET”不受支持 我怎么才能打开它? 提前感谢!

  • 我有以下代码 现在,当我去http://localhost:8080/recipe/2/update,点击提交,我调用@PostMap方法,更新后重定向我到 但是我在控制台上发现了这个错误 这个在网上 当我将@PostMap更改为@Request estMap或添加额外的@GetMaap时,一切正常 有人能解释一下吗?或者我该怎么做才能让@PostMapping按预期工作。 更新:如下面的评论所述

  • 您好,我正在尝试创建一个POST方法,但我一直收到“404 Request方法'GET'not support”错误。下面我将发布我的Rest控制器,下面我将发布我的服务类。唯一不起作用的是@PostMaps方法。 我没有看到这个问题,我尝试切换到@GetMapping并删除了实际的事务“billRepository.delete(billToWithdraw);”然后该方法返回正确的账单。