2012-12-28 8 views
15

Ich habe eine einfache Frage bezüglich der Verwendung von cURL. Ich habe auf meiner Google-Suche oder Man-Seite nicht viel gefunden, um eine klare Antwort zu erhalten.cURL POST --data-binary vs --form

In here spricht über die Verwendung entweder --data vs --form beim Senden von Datei/Anhang. Ich bin gespannt, was der Hauptunterschied ist und unter welchen Szenarien würden Sie wählen --data-binary VS --form?

Der POST "Körper" entweder über --data (for application/x-www-form-urlencoded) oder --form (for multipart/form-data) gesendet werden können:

-F "foo=bar"     # 'foo' value is 'bar' 
-F "foo=<foovalue.txt"  # the specified file is sent as plain text input 
-F "[email protected]"  # the specified file is sent as an attachment 

-d "foo=bar" 
-d "foo=<foovalue.txt" 
-d "[email protected]" 
-d "@entirebody.txt"   # the specified file is used as the POST body 

--data-binary "@binarybody.jpg" 

Antwort

6
an den Server gesendet Wesen

Der Unterschied wird in der HTML 4.01 Specification section on Forms erläutert:

Anwendung/x-www-form-urlencoded ist der Standardinhalt Art.

Der Inhaltstyp "application/x-www-form-urlencoded" ist ineffizient für das Senden großer Mengen binärer Daten oder von Text, der Nicht-ASCII-Zeichen enthält. Der Inhaltstyp "multipart/form-data" sollte zum Übermitteln von Formularen verwendet werden, die Dateien, Nicht-ASCII-Daten und Binärdaten enthalten.

3

, das genau ist der Hauptunterschied, der Art der Daten, die (application/x-www-form-urlencoded vs multipart/form-data)

+0

Vielen Dank! In welchen Szenarien werden Sie beide Arten von Daten verwenden? so 'form-urlencoded' ist für die Daten in die Anfrage eingebettet, aber multipart ist anders? – xbeta