Type de contenu application/x-www-form-urlencoded;charset=UTF-8' pas pris en charge pour @RequestBody MultiValueMap

En fonction de la réponse pour le problème avec x-www-form-urlencoded avec le Printemps @Contrôleur

J'ai écrit ci-dessous @Contrôleur méthode

@RequestMapping(value = "/{email}/authenticate", method = RequestMethod.POST
            , produces = {"application/json", "application/xml"}
            ,  consumes = {"application/x-www-form-urlencoded"}
    )
     public
        @ResponseBody
        Representation authenticate(@PathVariable("email") String anEmailAddress,
                                    @RequestBody MultiValueMap paramMap)
                throws Exception {


            if(paramMap == null || paramMap.get("password") == null) {
                throw new IllegalArgumentException("Password not provided");
            }
    }

la demande à laquelle échoue avec l'erreur ci-dessous

{
  "timestamp": 1447911866786,
  "status": 415,
  "error": "Unsupported Media Type",
  "exception": "org.springframework.web.HttpMediaTypeNotSupportedException",
  "message": "Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported",
  "path": "/users/usermail%40gmail.com/authenticate"
}

[PS: Jersey a été beaucoup plus amical, mais ne pouvait pas l'utiliser maintenant, étant donné les restrictions pratiques ici]

  • Avez-vous ajouter consomme = {"application/x-www-form-urlencoded"} dans @RequestBody?
  • Comment avez-vous d'exécuter la demande? ajouter le code de (js,jquery, curl ou ce que vous utilisez ) .
  • J'ai le même problème. Dans mon cas, j'utilise ajax de jquery pour afficher les données et les données sont JSON.stringify({"ordersToDownload":"00417002"}
  • C'est le code que j'utilise: $.ajax({url:"/myurl", type:"POST", data: JSON.stringify({"someAttribute":"someData"}) })
  • Vérifier ma réponse out entrez description du lien ici