Je ne parviens pas à créer une demande multipartite/mixte POST avec l'extension Postman Chrome
Voici ma demande de curl qui fonctionne Nice
curl -H "Content-Type: multipart/mixed"
-F "metadata=@simple_json.json; type=application/json "
-F "[email protected]; type=image/jpg" -X POST http://my/api/item -i -v
partie intéressante de la réponse
Longueur du contenu: 41557
Attendre: 100-continue
Type de contenu: multipart/mixed; frontière = ---------------------------- 8aaca457e117
- trucs supplémentaires pas bien transfer.c: 1037: 0 0
- HTTP 1.1 ou version ultérieure avec connexion persistante, traitement en pipeline pris en charge
Et quand j'utilise Postman
Je reçois une telle réponse
{"message":"Could not parse multipart servlet request;
nested exception is org.Apache.commons.fileupload.FileUploadException:
the request was rejected because no multipart boundary was
found","type":"error","status":500,"requestId":"1861eloo6fpio"}
Ça y est - je souhaite me débarrasser de cette erreur ... Si vous avez besoin de plus d'informations, veuillez demander :)
Je faisais face à ce problème aussi. Réponse courte: supprimez l'en-tête Content-Type
de votre demande Postman.
La longue histoire est que le Content-Type
pour une requête en plusieurs parties devrait être assez spécial - il devrait ressembler à ceci:
multipart/form-data; boundary=----WebKitFormBoundaryzeZR8KqAYJyI2jPL
Le problème est que la limite est importante et qu'elle doit correspondre exactement à la limite utilisée pour séparer les fichiers téléchargés. La solution est simple: ne spécifiez pas un Content-Type
! Lorsque vous téléchargez des fichiers, Postman ajoute automatiquement le type de contenu ci-dessus, sauf que les limites sont remplies avec tout ce que Postman ou Chrome utilise pour séparer le contenu en plusieurs parties.
Vous pouvez vérifier ce comportement en utilisant les outils de développement Chrome (dans Postman) pour examiner l'en-tête Content-Type
ajouté, en plus des en-têtes Content-Disposition
des données en plusieurs parties, qui sont également difficiles à construire manuellement (et impossible dans Postman).
Note : Ma réponse est une solution pour ceux qui ont besoin d'une réponse multipart/form-data
. Le PO recherchait une solution multipart/mixed
. Ma réponse ne suffira pas dans ce scénario. Cela étant dit, il semble que beaucoup de gens veulent juste la solution multipart/form-data
, alors je vais laisser ma réponse ici.
Laissé ce commentaire sur: https://github.com/postmanlabs/postman-app-support/issues/1104
Ninja update: Vous ne savez pas si cela aidera quelqu'un d'autre, mais il existe une solution de contournement pour un scénario spécifique dans lequel plusieurs types de fichiers/types de contenu sont en cours de chargement dans une même demande multipartie POST.
Content-Type
sur multipart/mixed
.form-data
dans Body
.file
, en ajoutant un nom de clé.Cette approche ne nécessite pas de spécifier manuellement chaque Content-Type
ou Content-Disposition
. Le truc ici était de sérialiser tout le contenu pertinent dans un type de fichier persistant. Vous pouvez ignorer l'étape "convertir le fichier en fichier" si c'est du texte :) J'espère que cela aidera quelqu'un!