区别
使用@RequestBody,用于处理JSON格式的数据,请求的Content-Type的类型为:application/json,请求参数类型为json字符串,格式为 { “id”: 1, “name”: “knqiufan” };
不使用@RequestBody,处理表单格式的数据,请求的Content-Type类型为:application/x-www-form-urlencoded或multipart/form-data,提交的数据格式为 id=1&name=knqiufan。
示例1
前端请求(使用的是uniapp的请求方式,默认情况下Content-Type为application/x-www-form-urlencoded:
- 前端
// 使用表单格式传递
uni.request({
url: "http://127.0.0.1:9000/api/hyHd/ww/app/xcgj/test2",
method: "get",
data: {
ycyy: "cccccc",
bzmGgJcrw: "928j8d782j3",
bzmGgJcrwDy: "kckiwjkngoo"
},
success(res) {
console.log("res", res)
},
fail(e) {
console.error("e", e)
}
})
- 对应后端
@GetMapping("test2")
@ApiOperation("测试2")
public ActionResult<Object> test2(SignInModel signInModel) {
return ActionResult.success(signInModel);
}
示例2
前端请求(使用的是uniapp的请求方式,Content-Type使用application/json:
- 前端
uni.request({
url: "http://127.0.0.1:9000/api/hyHd/ww/app/xcgj/test1",
method: "get",
header: {
'Content-Type': 'application/json'
},
data: JSON.stringify({
ycyy: "cccccc",
bzmGgJcrw: "928j8d782j3",
bzmGgJcrwDy: "kckiwjkngoo"
}),
success(res) {
console.log("res", res)
},
fail(e) {
console.error("e", e)
}
})
- 对应后端
@GetMapping("test1")
@ApiOperation("测试1")
public ActionResult<Object> test1(@RequestBody SignInModel signInModel) {
return ActionResult.success(signInModel);
}
参数处理
Content-Type为application/x-www-form-urlencoded时提交的数据方式是 a=1&b=2这样
Content-Type为application/json时需要以json字符串形式提交:{“a”:1, “b”:2}