如何在 Spring Boot 中读取 POST 正文

问题描述 投票:0回答:1

嗨,我正在积累有关 Spring Boot 的知识。

到目前为止我已经创建了:

  • 获取返回硬编码数据的请求 - 有效
  • 获取使用路径 pram ID 返回数据的请求 - 有效

我现在尝试使用从正文获取 ID 的发布请求(这是为了学习而不是最佳实践,因为我知道这将在路径中使用它)

但是我的代码不断返回“0”而不是 ID...

我做错了什么?

我的控制器

@RestController
public class spannerController {

  @Autowired
  CdRequestService cdRequestService;

  @GetMapping("/getData")
  public Optional<Request> getData() {
    Optional<Request> request;
    request = requestService.getRequest(101);

    return request;
  }


  @GetMapping("/getData/{id}")
  public Optional<Request> getData(@PathVariable("id") int id) {
    Optional<Request> request;
    request = requestService.getRequest(id);

    return request;
  }

  @PostMapping(value = "/getData",
      consumes = MediaType.APPLICATION_JSON_VALUE,
      produces = MediaType.APPLICATION_JSON_VALUE)
  public void getDataPost(@RequestBody PostRequest request) {
    System.out.println(request);
    System.out.println(request.getId());
  }
}

请求课程

public class PostRequest {

   int id;

  public PostRequest() {
  }
  public PostRequest(int id) {
    this.id = id;
  }

  public int getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

}
spring-boot api post request
1个回答
0
投票

确保您使用的是

org.springframework.web.bind.annotation.RequestBody
而不是
io.swagger.v3.oas.annotations.parameters.RequestBody
。这是一个经常出现的问题。其他的好像都还好。

© www.soinside.com 2019 - 2024. All rights reserved.