gpt4 book ai didi

java - RequestMethod.DELETE 不接受 RequestBody

转载 作者:行者123 更新时间:2023-12-02 03:09:55 25 4
gpt4 key购买 nike

我正在使用 tomcat v8 并尝试通过 RequestBody 将对象发布到我的 REST API。此 REST API 基本上是 RequestMethod.DELETE,因为此 API 内部的逻辑是删除在 RequestBody 中传递的对象。

这对我不起作用。我后来不得不将我的方法转换为 POST 但我仍然想知道 DELETE 是否不接受 RequestBody ?

这是 Spring 框架或 REST 原则的限制还是与我的 Tomcat 配置(server.xml)文件有关。

最佳答案

but I am still wondering does DELETE doesn't accept RequestBody ?

这是预期的行为。 RFC 7231 HTTP 1.1 规范版本指出:

A payload within a DELETE request message has no defined semantics; sending a payload body on a DELETE request might cause some existing implementations to reject the request.

在这种情况下,您似乎遇到了 Tomcat 中的默认限制。 (根据 HTTP 规范,这是完全合法的行为。)

您可以覆盖默认行为:请参阅 the other answer 。然而,我觉得 DELETE 动词允许或要求请求正文的 API 设计很糟糕。当然这是违反直觉的。

关于java - RequestMethod.DELETE 不接受 RequestBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41205062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com