it-swarm.com.de

Senden POST Anforderung mit in Datei über Curl angegebenen Daten

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"
160
user253202

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.

254
Richard J

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, ...

20
Gray

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

9
Lucas Liu

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
1
Red Boy