Ich habe Probleme beim Erstellen POST Multipart/Mixed-Request mit Postman Chrome-Erweiterung
Hier mein Curl-Wunsch was Nizza klappt
curl -H "Content-Type: multipart/mixed"
-F "[email protected]_json.json; type=application/json "
-F "[email protected]; type=image/jpg" -X POST http://my/api/item -i -v
interessanter Teil der Antwort
Inhaltslänge: 41557
Erwarten Sie: 100 weiter
Inhaltstyp: multipart/mixed; Grenze = ---------------------------- 8aaca457e117
- zusätzliches Zeug nicht gut transfer.c: 1037: 0 0
- HTTP 1.1 oder höher mit permanenter Verbindung, Pipelining wird unterstützt
Und wenn ich Postman benutze.
Ich bekomme eine solche Antwort
{"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"}
Das ist es - ich möchte diesen Fehler beseitigen ... Wenn Sie weitere Informationen benötigen, fragen Sie bitte :)
Ich stand auch vor diesem Problem. Kurze Antwort: Entfernen Sie den Content-Type
-Header aus Ihrer Postman-Anfrage.
Die lange Geschichte besagt, dass Content-Type
für eine mehrteilige Anfrage etwas Besonderes sein sollte - es sollte so aussehen:
multipart/form-data; boundary=----WebKitFormBoundaryzeZR8KqAYJyI2jPL
Das Problem ist, dass die Grenze wichtig ist und genau mit der Grenze übereinstimmen muss, die zum Trennen der hochgeladenen Dateien verwendet wird. Die Lösung ist einfach: Geben Sie keinen Content-Type
an! Wenn Sie Dateien hochladen, fügt Postman den obigen Inhaltstyp automatisch für Sie hinzu, mit der Ausnahme, dass die Begrenzung mit dem von Postman oder Chrome verwendeten Bereich gefüllt wird, um den mehrteiligen Inhalt zu trennen.
Sie können dieses Verhalten überprüfen, indem Sie die Chrome-Entwicklertools (in Postman) verwenden, um den hinzugefügten Content-Type
-Header zusätzlich zu den Content-Disposition
-Headern der mehrteiligen Daten zu prüfen, die auch manuell zu konstruieren sind (und nicht in Postman möglich sind).
Hinweis : Meine Antwort ist eine Lösung für diejenigen, die eine multipart/form-data
-Antwort benötigen. Das OP suchte nach einer multipart/mixed
-Lösung. Meine Antwort wird in diesem Szenario nicht ausreichen. Davon abgesehen scheint es, dass viele Leute nur die multipart/form-data
-Lösung wollen, daher werde ich meine Antwort hier lassen.
Hat diesen Kommentar abgegeben am: https://github.com/postmanlabs/postman-app-support/issues/1104
Ninja update: Nicht sicher, ob dies für alle anderen hilfreich ist. Es gibt jedoch eine Problemumgehung für ein bestimmtes Szenario, in dem mehrere Dateitypen/Inhaltstypen in einer einzigen mehrteiligen Anforderung POST hochgeladen werden.
Content-Type
auf multipart/mixed
.Body
die Option form-data
aus.file
auswählen und einen Schlüsselnamen hinzufügen.Bei diesem Ansatz müssen Sie nicht jeden Content-Type
oder Content-Disposition
manuell angeben. Der Trick dabei war, alle relevanten Inhalte in einen persistenten Dateityp zu serialisieren. Sie können den Schritt "Konvertieren in eine Datei" ignorieren, wenn es sich um Text handelt :) Hoffe, das hilft jemandem!