postman中 form-data、x-www-form-urlencoded、raw、binary的区别
四种常见的 POST 提交数据方式
POST请求
@RequestParam:
① 用来处理(前端)Content-Type: 为 application/x-www-form-urlencoded或者form-data编码的内容
② 该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;
注意这里Headers里不能以application/json作为Content-type,否则后台也接收不到请求
@RequestMapping(value = "/del", method = RequestMethod.POST)
public ResponseObj<Boolean> delete(@RequestParam String enterpriseId,
@RequestParam String operator,
@RequestParam String status) {
int i = enterpriseBaseMapper.deleteByPrimaryKey(enterpriseId);
if (i == 1)
return new ResponseObj<Boolean>(true, RetCode.SUCCESS);
return new ResponseObj<Boolean>(false, RetCode.FAIL);
}
@RequestBody
① 该注解常用来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;
前端规定的是raw方式,那么就需要使用@RequestBody接收参数,注意这里Headers里需要以application/json作为Content-type
使用如下代码可以正常进入断点
@RequestMapping(value = "/del", method = RequestMethod.POST)
public ResponseObj<Boolean> delete(/*@RequestParam String enterpriseId,
@RequestParam String operator,
@RequestParam String status*/
@RequestBody Map<String,Object> map) {
String enterpriseId = (String) map.get("enterpriseId");
String operator = (String) map.get("operator");
String status = (String) map.get("status");
int i = enterpriseBaseMapper.deleteByPrimaryKey(enterpriseId);
if (i == 1)
return new ResponseObj<Boolean>(true, RetCode.SUCCESS);
return new ResponseObj<Boolean>(false, RetCode.FAIL);
}
那么以后尽量使用@RequestBody Map<String,Object> map这种形式
@RequestParam @RequestBody @PathVariable 等参数绑定注解详解
网友评论