RESTE multipart mixte demande (fichier+json) avec le Ressort
J'ai besoin d'envoyer un fichier, à côté d'un json à mon Ressort du Contrôleur. J'ai la suite de contrôleur de classe:
@Controller
@RequestMapping("/perform")
public class PerformController {
...
@RequestMapping(path = "gopdf", method = RequestMethod.POST, consumes = { "multipart/mixed" })
@ResponseStatus(HttpStatus.CREATED)
public void handleFileUpload(@RequestPart("file") MultipartFile file, @RequestPart("map") String map, HttpServletResponse response) throws Exception {
...
}
}
Mais quand je boucle sur mon serveur avec la commande suivante :
curl -H "Content-Type: multipart/form-data" -F "[email protected]; type=application/json" -F "[email protected]" -X POST localhost:9000/perform/gopdf-i -v
- Je obtenir 415 unsupported Media Type !
La moindre idée ?
OriginalL'auteur ElArbi | 2016-07-05
Vous devez vous connecter pour publier un commentaire.
Le consomme chose dans les autres réponses ne voulais pas faire de la merde pour moi. La clé est d'obtenir le spécifique multipart/* types je voulais appuyer sur des en-têtes de clé dans la RequestMapping. C'était vraiment difficile à comprendre, surtout de la conjecture et de regarder le source code. Je suis une sorte de underwhelmed avec le Printemps de support pour cela, mais j'ai réussi à le faire fonctionner dans notre Printemps de Démarrage de l'App, mais seulement avec Tomcat?!? Quelque chose qui s'appelle la MultipartResolver étouffe lorsque vous configurez votre application de Démarrage à l'utilisation de la Jetée...la Jetée. Mais je m'égare...
Dans mon Contrôleur je mis en place pour multipart/mixed ou multipart/form-data comme...
Que les en-têtes chose laisser identifier les types de contenu de type multipart il était prêt à prendre une chance. Cela vous permet de boucles comme...
...ou...
travail.
OriginalL'auteur Bob Kuhar
J'ai trouvé la solution:
J'ai besoin d'utiliser @RequestParam au lieu de @RequestPart
Le problème a été tout au long de la "consomme" de l'annotation
OriginalL'auteur ElArbi
Le multipart/mixed pour le printemps webflux(2.1.0) ne fonctionne pas pour moi. Ici est une approche alternative qui a travaillé
l'un est le corps, l'autre est un fichier lui-même. Dans mon cas puisque la charge est constante, il a travaillé.
OriginalL'auteur Aravind
C'est peut-être liés à votre demande de cartographie d'annotation. Je pense que
accept
valeur est manquante pour déterminer quel service peut accepter :Exemple :
D'importation :
Documentation/API : http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/http/MediaType.html
OriginalL'auteur Mickael