我这几天在研究 spring boot 2.0,但是 webflux 还没开始写就遇到了这个问题,很费解。先给你们看看代码:
@PostMapping("/save")
public String save(@RequestParam String name) {
User user = new User();
user.setName(name);
userRepo.save(user);
return "用户保存成功";
}
然后我用 postman 测试的时候,明明传了参数“ name ”但是依旧是显示
{
"timestamp": "2018-07-18T06:55:07.879+0000",
"path": "/user/save",
"status": 400,
"error": "Bad Request",
"message": "Required String parameter 'name' is not present"
}
form-data 和 x-www-form-urlencoded 都不行,这是咋咧? 前辈赐教
1
darkblood 2018-07-18 15:18:26 +08:00 via Android
spring 不熟 requestparam 是不是取的 querystring
|
2
zuishuaidenage 2018-07-18 17:30:55 +08:00
我估计是由于你用的 post 然后 RequestParam 取不到 你把 RequestParam 去掉试试
|
3
acrisliu 2018-07-18 17:33:01 +08:00
试试 url/save?name=param
|
4
wdlth 2018-07-18 21:07:55 +08:00
有可能是 Postman 的锅,我遇到过复制进去的 field 不提交的 BUG
还有设置 application/x-www-form-urlencoded 头再试试 |
5
jack80342 2018-07-18 22:06:43 +08:00 2
最近翻译了最新的 Spring boot 官方文档,欢迎反馈🙃,https://www.gitbook.com/book/jack80342/spring-boot/details
|
6
azygote 2018-07-18 22:29:12 +08:00
POST 的话不需要 @RequestParam 的吧
|
7
AlisaDestiny 2018-07-18 22:52:07 +08:00
@jack80342 感谢你的贡献,已 CTRL+D。
|
8
wleexi 2018-07-18 22:56:07 +08:00
PSOTMAN 把请求参数放在请求体内,自然 400 了
|
9
johnniang 2018-07-18 23:18:11 +08:00 via Android
既然是 post,为何不直接传{'name': '...'},然后接收 User user
|
10
chocotan 2018-07-18 23:34:37 +08:00
|
11
hduwillsky 2018-07-19 08:00:44 +08:00 via iPhone
RequestParam 是 query param
|
13
Malthael 2018-07-19 09:16:47 +08:00
你 postman 是怎么传参数的? post 方式 @RequestBody 和 @RequestParam 传参方式是不一样的
|
14
nita22 2018-07-19 10:05:39 +08:00
可以尝试用 axios 或者 jquery 的 ajax,自己发一个请求到你的 controller 看看。目测是 postman 的问题
|
15
shazh520 OP 哈哈,postman 背锅
|