Spring post метод "Требуется тело запроса отсутствует" - PullRequest
0 голосов
/ 24 октября 2018
@PostMapping(path="/login")
public ResponseEntity<User> loginUser(@RequestBody Map<String, String> userData) throws Exception {
    return ResponseEntity.ok(userService.login(userData));
}

У меня есть этот метод для входа в UserController.Проблема в том, что когда я пытаюсь сделать запрос на вход в систему, я получаю эту ошибку:

{
"timestamp": "2018-10-24T16:47:04.691+0000",
"status": 400,
"error": "Bad Request",
"message": "Required request body is missing: public org.springframework.http.ResponseEntity<org.scd.model.User> org.scd.controller.UserController.loginUser(java.util.Map<java.lang.String, java.lang.String>) throws java.lang.Exception",
"path": "/users/login"
}

enter image description here

Ответы [ 3 ]

0 голосов
/ 24 октября 2018

Вам необходимо отправить данные в Body как JSON

 { "email":"email@email.com", "password":"tuffCookie"}
0 голосов
/ 24 октября 2018

Вы должны передать это как JSON в вашем теле, если это запрос POST.

enter image description here

0 голосов
/ 24 октября 2018

Это происходит потому, что вы не передаете тело на сервер.Как я вижу на скриншоте, вы передаете адрес электронной почты и пароль как ResquestParam.

Чтобы обработать эти значения, вы можете сделать следующее:

@PostMapping(path="/login")
public ResponseEntity<User> loginUser(@RequestParam("email") String email, @RequestParam("password") String password) {
     //your imp
}

Чтобы принять пустое телоВы можете использовать параметр required в аннотации RequestBody:

@RequestBody(required = false)

Но это не решит вашу проблему.Прием в качестве RequestParam.

Если вы хотите использовать RequestBody, вы должны передать адрес электронной почты и пароль в body .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...