昨天遇到一个问题,困扰了很久。前端传参了,但是后台却怎么也收不到
- 请求
@ApiOperation(value = "消息配置:保存人员配置", notes = "消息配置:保存人员配置")
@PostMapping("/userSubCenterSave")
public ResponseModel<Object> 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;
@Data
public class UserSubCenterVo {
private String userId;
private String orgCodes;
private String createUserId;
}
以上就是代码,就是一个普通接收参数的controller类,就是很奇怪咋就收不到。
bug过程
-
是不是content-type不符合?
- @RequestBody是接收json请求
-
实体类没有setget方法
-
是不是传参key多个空格
-
查了一下好像都不是。于是打bug
咦,都是null,奇怪。往前翻了下,是不是过滤了?
一步步走来,一直翻到最开始的,打开一看咋这个request参数为空。
难道是内置tomcat版本变更,于是又换了一下版本号从2.几->1.几,
还是不行。奇怪。
后来我用postman测试时突然发现传一个参数可以,都传的话却收不到,雅尼?
突然灵光一现,难道时请求体太大了?
于是加了配置
server.max-http-header-size=-1
server.tomcat.max-http-post-size=-1
重启,
可以了。我去,原来时这样。
之后复盘发现,原来点开那parmaters,有提示了,
- 结尾
解bug还是不能急躁,一步一步,断点bug是很有效果的