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 должен быть в порядке.....
помоги мне... спасибо... чувак
где эта проверка идентификатора пользователя?
изменил его
Это сработает, но не для json, а для отправки формы.

В этом случае вы должны использовать @RequestBody вместо @RequestParam.
@PostMapping("/addQuestion")
@ResponseBody
public Result addQuestion(@RequestBody Question)
@RequestParam предназначен для обработки параметров запроса, но вы хотите обрабатывать тело запроса, для этого предназначен @RequestBody.
Я понимаю, спасибо
В Spring Framework у нас есть три аннотации, которые позволяют нам отправлять некоторые данные через запрос:
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
Отлично!!~ Я понял, спасибо
Вставьте код, удалите изображения.