'Spring post method "Required request body is missing"
@PostMapping(path="/login")
public ResponseEntity<User> loginUser(@RequestBody Map<String, String> userData) throws Exception {
return ResponseEntity.ok(userService.login(userData));
}
I have this method for the login in the UserController. The problem is when i try to make the post request for the login i get this error:
{
"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"
}
Solution 1:[1]
Solution 2:[2]
This is happening because you are not passing a body to you server. As can I see in your screenshot you are passing email and password as a ResquestParam.
To handle this values, you can do the following:
@PostMapping(path="/login")
public ResponseEntity<User> loginUser(@RequestParam("email") String email, @RequestParam("password") String password) {
//your imp
}
In order to accept an empty body you can use the required
param in the RequestBody annotation:
@RequestBody(required = false)
But this will not solve your problem. Receiving as RequestParam will.
If you want to use RequestBody you should pass the email and password in the body.
Solution 3:[3]
I had a similar issue, was getting this error in my Spring Boot service
HttpMessageNotReadableException: Required request body is missing:...
My issue was that, when I was making requests from Postman, the "Content-Length" header was unchecked, so service was not considering the request body.
Solution 4:[4]
You need to send data in Body as JSON
{ "email":"[email protected]", "password":"tuffCookie"}
Solution 5:[5]
If it's still not working, try adding additional information UTF-8
in Headers.
key : Content-Type
value : application/json; charset=utf-8
For my case, I must adding UTF-8
in Headers.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | cosmos |
Solution 2 | L. Figueredo |
Solution 3 | Florin D |
Solution 4 | user7294900 |
Solution 5 | Johan |