我这几天在研究 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 年 7 月 18 日 via Android
spring 不熟 requestparam 是不是取的 querystring
|
2
zuishuaidenage 2018 年 7 月 18 日
我估计是由于你用的 post 然后 RequestParam 取不到 你把 RequestParam 去掉试试
|
3
acrisliu 2018 年 7 月 18 日
试试 url/save?name=param
|
4
wdlth 2018 年 7 月 18 日
有可能是 Postman 的锅,我遇到过复制进去的 field 不提交的 BUG
还有设置 application/x-www-form-urlencoded 头再试试 |
5
jack80342 2018 年 7 月 18 日 最近翻译了最新的 Spring boot 官方文档,欢迎反馈🙃,https://www.gitbook.com/book/jack80342/spring-boot/details
|
6
azygote 2018 年 7 月 18 日
POST 的话不需要 @RequestParam 的吧
|
7
AlisaDestiny 2018 年 7 月 18 日
@jack80342 感谢你的贡献,已 CTRL+D。
|
8
wleexi 2018 年 7 月 18 日
PSOTMAN 把请求参数放在请求体内,自然 400 了
|
9
johnniang 2018 年 7 月 18 日 via Android
既然是 post,为何不直接传{'name': '...'},然后接收 User user
|
10
chocotan 2018 年 7 月 18 日
|
11
hduwillsky 2018 年 7 月 19 日 via iPhone
RequestParam 是 query param
|
13
Malthael 2018 年 7 月 19 日
你 postman 是怎么传参数的? post 方式 @RequestBody 和 @RequestParam 传参方式是不一样的
|
14
nita22 2018 年 7 月 19 日
可以尝试用 axios 或者 jquery 的 ajax,自己发一个请求到你的 controller 看看。目测是 postman 的问题
|
15
shazh520 OP 哈哈,postman 背锅
|