Curl, wie POST multipart/form-data die Daten und Wie zu Lesen multipart/form-data in der Flasche verlangen
Versuchte ich die Buchung multipart/form-Daten über CURL, die enthält,
- Ein JSON-Objekt
- Stream-Objekt, pdf-und jpeg-Datei
curl -i -X POST -H
"Authorization":"eyJhbGciOiJIUzI1NiIsImV4cCI6MTQyNjcwNTY4NiwiaWF0IjoxNDI2NzAyMDg2fQ.eyJpZCI6MTc3fQ.yBwLFez2RnxTojLniL8YLItWVvBb90HF_yfhcsyg3lY" -H
"Content-Type:application/multipart/form-data" -d '{"user data": {"preferred_city":"Newyork","within_radious":"5"}}' --data-binary
"uploaded_documents":@mydocument.pdf http://127.0.0.1:5000/api/city
Nun muss ich Lesen Sie diese multipart-Daten in Fläschchen request-Objekt.ich habe versucht,
request.data
Er hat die Daten drucken, aber ich bin nicht sicher, wie zu Lesen, dem stream-Objekt und speichern Sie die Datei auf der Festplatte.
- können Sie versuchen
request.form
- Anfrage.form-Wörterbuch Länge null ist, werden keine Daten in form
- dies ist in Anfrage.Daten ---- str: {"userdata":{"preferred_city":"Newyork","within_radious":"5"}}&uploaded_documents:@mydocument.pdf
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es ein paar Probleme mit Ihrem curl Befehl, alle, die vielleicht zum problem beitragen:
application/multipart/form-data
ist kein Gültiger MIME-Typ, so dass dieContent-Type
ist ungültig. Für Datei-uploads der content-type in der Regelmultipart/form-data
. Auch brauchen Sie nicht, um anzugeben, das der content type, curl funktionieren wird es auf der Grundlage der Argumente.-F
statt-d
verursachen wird curl zum erstellen und posten von einemmultipart/form-data
Formular mit einer gültigen Grenze.Setzen, dass gemeinsam Ergebnisse in dieser curl-Befehl:
Können Sie den Inhalt angeben, geben Sie für jeden Teil, wenn Sie nicht wie diejenigen ausgewählt, die von LOCKE (der Datei application/octet-stream):
Der Letzte Befehl erzeugt eine HTTP-Anfrage wie diese:
Dann in Fläschchen können Sie den Zugriff auf die Formular-Daten mit
request.form
z.B.request.form['user_data']
. Wie es ist ein json-string, könnten Sie laden Sie es mitjson.loads(request.form['user_data'])
.Die hochgeladene Datei kann zugegriffen werden, mithilfe von
request.file
wie beschrieben hier und hier in der Flask Dokumentation.