【问题标题】:Request method 'POST' not supported in PostmanPostman 不支持请求方法“POST”
【发布时间】:2021-07-25 21:52:39
【问题描述】:

我已经创建了这个控制器

@PostMapping(value = "/validate")
    public ResponseEntity<GenericResponse> validate(@RequestBody @Valid FormulaDTO formulaDto) {
        System.out.println(formulaDto);
        String expression = formulaDto.getFormula();
        service.validate(expression);
        return new ResponseEntity<>(new GenericResponse(HttpStatus.CREATED.value(), "Expression Validated"),
                HttpStatus.CREATED);
    }

FormulaDTO 看起来像

public class FormulaDTO {

    private String formula;

}

我从邮递员创建了一个 PostRequest,其正文包含公式文本。 来自邮递员的 api 调用看起来像

https://localhost:8443/validate

主体为

{
    "formula" :"M00212=curr_month:M00213-curr_month:M00211*100.00"
}

我得到以下输出,并带有 500 Internal Server Error

{
    "timestamp": "2021-05-03",
    "message": "Request method 'POST' not supported",
    "details": "uri=/error"
}

如何使用 PostMapping?

【问题讨论】:

  • 请添加您的控制器类的所有代码。还要添加网址以及您如何从邮递员那里调用您的 api。
  • 请查看更新后的查询
  • 您的控制器有一个名为“/validate”的端点,但在邮递员中您使用的是“/validateExpn”。尝试将其更改为“/验证”
  • 对不起我的错。错误是相同的,即我无法通过邮递员使用邮政电话。知道为什么会这样。
  • 请添加您所有的控制器类代码。我的意思是你使用 de @RestController 装饰器的部分。添加尽可能多的代码。我确定是配置问题

标签: spring spring-boot annotations postman mapping


【解决方案1】:

在邮递员中使用http 而不是https

而不是这个:https://localhost:8443/validate

使用这个:http://localhost:8443/validate

【讨论】:

  • 有一些权利问题,我添加了一些身份验证密钥,显然请求就像一个魅力!谢谢你的努力:)
【解决方案2】:

看cmets

@RestController 没有根级映射。

即使你在控制器上没有根级映射,spring boot 似乎总是需要控制器级的以下注释

@RequestMapping

添加它,它将被修复!

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 2016-05-02
    相关资源
    最近更新 更多