Ich muss eine POST - Anfrage über Curl von der Befehlszeile aus machen. Daten für diese Anfrage befinden sich in einer Datei. Ich weiß, dass dies per PUT mit der Option --upload-file
erfolgen kann.
curl Host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
Sie suchen nach dem Argument --data-binary
:
curl -i -X POST Host:port/post-file \
-H "Content-Type: text/xml" \
--data-binary "@path/to/file"
Im obigen Beispiel druckt -i
alle Kopfzeilen, sodass Sie sehen können, was los ist, und -X POST
macht deutlich, dass es sich hierbei um einen Beitrag handelt. Beides kann sicher weggelassen werden, ohne das Verhalten auf dem Draht zu ändern. Dem Pfad zu der Datei muss ein @
-Symbol vorangestellt sein, sodass curl
aus einer Datei lesen kann.
Ich muss eine POST - Anfrage über Curl von der Befehlszeile aus machen. Daten für diese Anfrage befinden sich in einer Datei ...
Alles was Sie tun müssen, ist das --data
-Argument mit einem @
zu beginnen:
curl -H "Content-Type: text/xml" --data "@path_of_file" Host:port/post-file -path
Wenn Sie beispielsweise die Daten in einer Datei mit dem Namen stuff.xml
haben, würden Sie Folgendes tun:
curl -H "Content-Type: text/xml" --data "@stuff.xml" Host:port/post-file-path
Der stuff.xml
-Dateiname kann durch einen relativen oder vollständigen Pfad zur Datei ersetzt werden: @../xml/stuff.xml
, @/var/tmp/stuff.xml
, ...
Wenn Sie zum Hochladen einer Datei Formulardaten verwenden, in denen ein Parametername angegeben werden muss, können Sie Folgendes verwenden:
curl -X POST -i -F [email protected] Host:port/xxx
Die meisten Antworten sind hier perfekt, aber wenn ich für mein spezielles Problem hier gelandet bin, muss ich die Binärdatei (XLSX-Tabellenkalkulation) mithilfe der Methode POST hochladen. Ich sehe eine Sache fehlt , dh normalerweise ist es nicht Wenn Sie nur eine Datei laden, haben Sie möglicherweise mehr Formdatenelemente , wie Kommentar zu Datei oder Tags zu Datei usw. wie in meinem Fall. Daher möchte ich es hier hinzufügen, da es mein Anwendungsfall war, damit es anderen helfen kann.
curl -POST -F comment=mycomment -F file_type=XLSX -F [email protected]/your/path/to/file.XLSX http://yourhost.example.com/api/example_url