昨天遇到一个问题,困扰了很久。前端传参了,但是后台却怎么也收不到
请求
@ApiOperation(value = "消息配置:保存人员配置", notes = "消息配置:保存人员配置") @PostMapping("/userSubCenterSave") public ResponseModel userSave(UserSubCenterVo userSubCenter){ try{ communicateCardService.userSave(userSubCenter); return new ResponseModel(RESULT_SUCCESS, "success"); }catch (Exception e){ log.error("获取用户异常:{}",e); return new ResponseModel(RESULT_ERROR, e.getMessage() ); } }
实体类
import lombok.Data;@Datapublic class UserSubCenterVo { private String userId; private String orgCodes; private String createUserId;}
以上就是代码,就是一个普通接收参数的controller类,就是很奇怪咋就收不到。
bug过程
是不是content-type不符合?
@RequestBody是接收json请求
实体类没有setget方法
是不是传参key多个空格
........
查了一下好像都不是。于是看了一下断点
咦,都是null,奇怪。往前翻了下,是不是过滤了?
一步步走来,一直翻到最开始的,打开一看咋这个request参数为空。
后来为了确认下,request是不是真的没有,在controller内加了request
结果还真没有,这种情况是不是tomact不对,于是先降了了版本号,结果还是不行,
后来我用postman测试时突然发现传一个参数可以,都传的话却收不到,雅尼?突然灵光一现,难道是请求体太大了?
于是加了配置
server.max-http-header-size=-1server.tomcat.max-http-post-size=-1
重启,
可以了。我去,原来是这样。不过咋没明显的报错呢(控制台打印)?。
之后复盘发现,原来点开那parmaters,有提示了,
结尾
解bug还是不能急躁,一步一步,断点bug是很有效果的