Required request body is missing 错误解决
下面的代码使用的是Get请求,但是使用了@RequestBody进行数据的封装,导致错误的原代码如下所示:@GetMapping("findAllByPageInterface")public@ResponseBody ApiResponse findAllByPage(@RequestBody findStockOutReq stockOutReq) {//判断获取的页面是否
·
下面的代码使用的是Get请求,但是使用了@RequestBody进行数据的封装,导致错误的原代码如下所示:
一般在工作中都会使用Post 请求加Json 请求接口,同时使用@RequsetBody接收Json 数据,使用GET请求来获取URL中的数据,这是共识,由于代码是自己刚出来的时候写的,后来也没有合适的示例,就再也没改过
@GetMapping("findAllByPageInterface")
public @ResponseBody ApiResponse findAllByPage(@RequestBody findStockOutReq stockOutReq) {
//判断获取的页面是否为空
if(stockOutReq.getLimit() <= 0) {
stockOutReq.setLimit(10);
}
if(stockOutReq.getPage() <= 0) {
stockOutReq.setPage(1);
}
ApiData data = null;
try {
data = service.findAllByPage(stockOutReq);
} catch(Exception e) {
logger.error("出库单数据查询异常,异常消息:"+e.getMessage());
return ApiResponse.ofSuccess("数据查询异常,稍后请重试!");
}
return ApiResponse.ofSuccess(data);
}
因为Get请求发送数据的方式不是json格式,所以当我们使用@RequsetBody封装Get请求的数据时就会出现无法获取到数据的情况,我们可以做如下修改就可以解决:
@GetMapping("findAllByPageInterface")
public @ResponseBody ApiResponse findAllByPage(findStockOutReq stockOutReq) {
//判断获取的页面是否为空
if(stockOutReq.getLimit() <= 0) {
stockOutReq.setLimit(10);
}
if(stockOutReq.getPage() <= 0) {
stockOutReq.setPage(1);
}
ApiData data = null;
try {
data = service.findAllByPage(stockOutReq);
} catch(Exception e) {
logger.error("出库单数据查询异常,异常消息:"+e.getMessage());
return ApiResponse.ofSuccess("数据查询异常,稍后请重试!");
}
return ApiResponse.ofSuccess(data);
}
在上面的代码中我将@RequsetBody注解去掉,也是可以将数据封入对象的
2021年8月4日补充:
下方评论很多人都说去掉以后接收的数据变为空可以试试@RequestParam这个注解,另外有问题可以加我微信:j2565338472请备注CSDN
更多推荐
已为社区贡献2条内容
所有评论(0)