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

Spring批注缺少requestBody

常海
2023-03-14

我用一个简单的post和get方法编写了一个非常简单的控制器类。

今天是我第一次使用Postman-我不知道我做错了什么,但每次使用POST映射,我都会得到:

{
  "timestamp": "2020-03-29T19:05:49.548+0000",
  "status": 400,
  "error": "Bad Request",
  "message": "Required request body is missing: public int pl.futurecollars.controller.GreetingControler.saveGreeting(pl.futurecollars.controller.Greeting)",
  "path": "/greetings"
}

控制器类别:

@RestController
@RequestMapping("/greetings")
public class GreetingControler {

    private Map<Integer, Greeting> greetings = new HashMap<>();
    private int counter = 0;

    @GetMapping
    public Collection<Greeting> getGreetings() {
        return greetings.values();
    }

    @PostMapping
    public int saveGreeting(@RequestBody Greeting greeting){
        greeting.setId(counter);
        greetings.put(counter, greeting);
        return counter++;
    }

    @DeleteMapping("/{id}")
    public void deleteGreeting(@PathParam("id") int greetingId){
        greetings.remove(greetingId);
    }
}

我添加了一个< code>@RequestBody,但它仍然说它丢失了。

如何解决这个麻烦?

共有2个答案

吴宏扬
2023-03-14

首先,根据注释中提到的错误验证输入,其中一个字段名以<code>开头相反,它应该位于中。您可以在上验证jsonhttps://jsoneditoronline.org/.同时添加邮递员快照,仅供邮递员内部参考-

农飞尘
2023-03-14

错误消息对缺少的内容有明确的描述:

缺少所需的请求正文:…

因此,您错过了向请求添加正文。

您的配置应该如下所示:

正文应该正是您的Greting类的JSON对象。
它应该发布到原始选项卡。

此外,不要忘记< code>header中适当的内容类型:

有用的链接:

  • 邮差教程
  • 使用Postman进行API测试
 类似资料:
  • 问题内容: 从早期版本升级到Spring Boot 2.0.0时,似乎已从库中删除了@ EnableOAuth2Sso批注。迁移指南和发行说明不清楚使用什么或可能移动到什么地方。 问题答案: 在关于Spring Boot的现有GitHub问题中进行讨论之后,我最终被引导到2.0.0版本中注释的位置。它已移至一个2.0.0发行工件全新的项目。 要解决此问题并迁移项目,请将工件org.springfr

  • 我使用的是最新的Spring Batch Admin(1.3.0.Release),并且在我的WAR工件pom文件中包含了'admin-manager'和'admin-resources'。 我的问题是css和图像资源从来没有正确的链接,所以我的管理主页看起来像这样。关于如何配置上下文以正确地包括这些资源,有什么建议吗?

  • Spring Boot(1.2.7)web应用程序(响应SSL请求)在Intellij IDEA上运行很好。 构建从命令行运行的JAR工件,启动时抛出错误 null Spring Boot(web)应用程序可以从Intellij IDEA运行,响应https请求,而不需要在application.properties中执行更多的操作。properties: 要从命令行启动JAR工件,我使用: JA

  • 问题内容: 我有Spring Boot应用程序版本1.5.x,该版本使用,试图将其迁移到Spring Boot 2,但是该应用程序无法编译,尽管它具有对的依赖。编译器发出以下错误: 问题答案: 该类已被删除并替换 为更多信息,请检查:Spring-Boot-2.0-Migration-Guide,其中说: 为了支持反应性用例,已对嵌入式容器的包装结构进行了相当广泛的重构。EmbeddedServl

  • 我有一个集成应用程序,大部分工作,但注意到昨天一个消息丢失了。当时,service-activatorendpoint正忙于处理先前的消息。 以下是适用于该问题的配置。

  • 我有Spring Boot应用程序版本1.5.x,它使用,我正试图将它迁移到Spring boot2,但该应用程序没有编译,尽管对有依赖关系。编译器发出以下错误: