获取PostMan Post请求参数失败

1.问题描述

使用PostMan测试时,Controller接收不到Post请求参数。

@RestController
@Slf4j
public class PaymentController {
    @Resource
    private PaymentService paymentService;
    
    @PostMapping(value = "/payment/create")
    public CommonResult create(@RequestBody Payment payment){
        int result = paymentService.create(payment);
        log.info("*******插入操作返回结果:" + result);

        if (result > 0){
            return new CommonResult(200,"插入数据库成功",result);
        }else {
            return new CommonResult(444,"插入数据库失败",null);
        }
    }
}

2.异常信息

“message”: “Required request body is missing: public com.atguigu.springcloud.entities.CommonResult com.atguigu.springcloud.controller.PaymentController.create(com.atguigu.springcloud.entities.Payment)”
"message": "Required request body is missing: public com.atguigu.springcloud.entities.CommonResult com.atguigu.springcloud.controller.PaymentController.create(com.atguigu.springcloud.entities.Payment)"

3.问题原因

  1. Controller使用@RequestBody注解,表示接收请求体中的信息为形参赋值;
    在这里插入图片描述
  2. 但是PostMan使用Params发送请求参数;
    在这里插入图片描述
  3. 导致Controller中的方法形参,不能获取PostMan发送来的请求参数。

4.解决方法

方法一:PostMan使用Body发送JSON类型请求参数

在这里插入图片描述

方法二 :Controller使用@RequestParam注解接收请求参数

在这里插入图片描述

5.踩坑小结

@RequestParam注解:从请求参数中获取信息,传给控制器方法形参;
@RequestBody注解:从请求体中获取信息,传给控制器方法形参。

卡了一晚上,泪目!!!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值