RESTE - HTTP Post Multipart avec JSON
J'ai besoin de recevoir un HTTP Post en plusieurs parties qui ne contient que 2 paramètres:
- Une chaîne JSON
- Un fichier binaire
Qui est la bonne manière de définir le corps?
Je vais test le HTTP appel à l'aide de Chrome RESTE de la console, alors je me demandais si la bonne solution est de mettre un "label" pour le paramètre JSON et le fichier binaire.
Sur le côté serveur, je suis en utilisant Resteasy 2.x, et je vais lire le multi-parties du corps comme ceci:
@POST
@Consumes("multipart/form-data")
public String postWithPhoto(MultipartFormDataInput multiPart) {
Map <String, List<InputPart>> params = multiPart.getFormDataMap();
String myJson = params.get("myJsonName").get(0).getBodyAsString();
InputPart imagePart = params.get("photo").get(0);
//do whatever I need to do with my json and my photo
}
Est-ce la voie à suivre?
Est-il correct de récupérer ma chaîne JSON à l'aide de la touche "myJsonName" qui permettent d'identifier ce contenu-disposition?
Il y a aucune autre façon de recevoir ces 2 contenu dans un HTTP multipart demande?
Merci d'avance
- Quel genre de REPOS ressource est-ce? Comment deux parties portent sur le niveau de ressources?
- Effectivement la façon dont nous avons géré cette ressource n'est pas totalement Reposant parce que l'image est une "composante" de la ressource au lieu d'une autre ressource.
Vous devez vous connecter pour publier un commentaire.
Si je vous comprends bien, vous souhaitez composer un multipart demander manuellement à partir d'une adresse HTTP/RESTE de la console. Le format multipart est simple; une brève introduction peut être trouvé dans le code HTML 4.01 spec. Vous devez venir avec une limite, ce qui est une chaîne de caractères ne trouve pas dans le contenu, disons
HereGoes
. Vous définissez l'en-tête de demandeContent-Type: multipart/form-data; boundary=HereGoes
. Alors ce doit être une requête valide de corps:\*
par exemple, le travail en tant que limite? Il n'a pas le droit d'exister en json, ni en base64.bcharsnospace
la règle). Notez également que"\\*"
est JSON valide.