java代码:
@RequestMapping("/addQuestion")
@ResponseBody
public Result addQuestion(@RequestParam("title") String title,
@RequestParam("content") String content){
Question question = new Question();
我使用邮递员发送请求参数 邮递员:
Reqeust Header:
Content-Type:application/json
Request Body:
{
"userId" : 1,
"offset": 0,
"limit":10
}
返回结果:
http代码:400
"timestamp": "2019-02-20T06:39:41.223+0000",
"status": 400,
"error": "Bad Request",
"message": "Required int parameter 'userId' is not present",
我不知道问题是否出在邮递员上,我认为java代码应该可以.....
帮我...谢谢...伙计
答案 0 :(得分:1)
在这种情况下,您应该使用@RequestBody
而不是@RequestParam
。
@PostMapping("/addQuestion")
@ResponseBody
public Result addQuestion(@RequestBody Question)
@RequestParam
用于处理查询参数,但是您要处理请求的正文,这就是@RequestBody
的作用。
答案 1 :(得分:0)
在spring框架中,我们列出了三个注释,这些注释使我们可以通过请求发送一些数据:
1) public void createUser(@RequsetBody User user) {
...
}
在请求中,您应该添加请求正文:这实际上是您在请求正文中添加的内容:
Reqeust Header:
Content-Type:application/json
Request Body:
{
"userId" : 1,
"offset": 0,
"limit":10
}
但是您的控制器正在等待@RequestParam
2) public void addUserName(@RequsetParam String userName) {
...
}
在请求中,您应该添加如下查询参数:
Http Params
userId : 1,
offset: 0,
limit:10
3)如果只有一个或两个参数,则可以使用@PathVariable
@GetMapping("/users/{userId}")
public User getUser(@PathVariable("userId") Long userId) {
...
}
请求应类似于以下serviceUrl / apiUri / users / 123