【问题标题】:Why was Post Request not allowed in my Spring RestController?为什么我的 Spring RestController 中不允许发布请求?
【发布时间】:2020-06-23 03:39:13
【问题描述】:

我创建了一个带有 Post 方法的 RestController。不知何故,当我从 Postman 发出 post 请求 http://localhost:8080/api/users 时,它抛出了 405 method not allowed 错误。

@RestController
@RequestMapping("/api")
  public class RestRegistrationController {

    @PostMapping("/users")
    public GenericResponse registerUserDTo(@Valid @RequestBody UserDto user) {

        return new GenericResponse("success");
    }

}

我的请求帖

{
    "firstName":"Test",
    "password":"Pa$$w0rd",
    "lastName":"Test",
    "email":"test2@test.com"
}

【问题讨论】:

  • 显示您发布的内容/方式。

标签: spring spring-boot spring-security


【解决方案1】:

验证 userDto 对象中可能有错误。检查所有通过控制器传入的字段是否与 UserDto 类相同

【讨论】:

  • 这怎么可能是一个答案?验证逻辑如何产生405 响应代码,除非您在验证逻辑中做了一些非常糟糕的事情?我建议对上述 "!answer" 使用 cmets 部分。等到你获得足够的分数来回答问题。投反对票只会延迟您的评论发布特权。
【解决方案2】:

如果您没有在映射中定义请求方法,则默认为 GET。

对于 POST:

@RequestMapping(value = "/end-point-url", method = RequestMethod.POST)

【讨论】:

    猜你喜欢
    • 2014-12-20
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-05
    • 2018-07-27
    • 2021-08-27
    • 2018-03-07
    • 2021-03-21
    相关资源
    最近更新 更多