The problem is that when we use application/x-www-form-urlencoded, Spring doesn’t understand it as a RequestBody. So, if we want to use this
we must remove the @RequestBody annotation.
Then try the following:
@RequestMapping(
path = "/{email}/authenticate",
method = RequestMethod.POST,
consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
produces = {
MediaType.APPLICATION_ATOM_XML_VALUE,
MediaType.APPLICATION_JSON_VALUE
})
public @ResponseBody Representation authenticate(
@PathVariable("email") String anEmailAddress,
MultiValueMap paramMap) throws Exception {
if (paramMap == null &&
paramMap.get("password") == null) {
throw new IllegalArgumentException("Password not provided");
}
return null;
}
Note that removed the annotation @RequestBody
answer: Http Post request with content type application/x-www-form-urlencoded not working in Spring