获取PostMan Post请求参数失败
- 1.问题描述
- 2.异常信息
- 3.问题原因
- 4.解决方法
- 方法一:PostMan使用Body发送JSON类型请求参数
- 方法二 :Controller使用@RequestParam注解接收请求参数
- 5.踩坑小结
1.问题描述
使用PostMan测试时,Controller接收不到Post请求参数。
@RestController
@Slf4j
public class PaymentController {@Resourceprivate 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)”
3.问题原因
- Controller使用@RequestBody注解,表示接收请求体中的信息为形参赋值;
- 但是PostMan使用Params发送请求参数;
- 导致Controller中的方法形参,不能获取PostMan发送来的请求参数。
4.解决方法
方法一:PostMan使用Body发送JSON类型请求参数
方法二 :Controller使用@RequestParam注解接收请求参数
5.踩坑小结
@RequestParam注解:从请求参数中获取信息,传给控制器方法形参;
@RequestBody注解:从请求体中获取信息,传给控制器方法形参。
卡了一晚上,泪目!!!