下面的代码使用的是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

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐