Je dois faire une demande POST via Curl à partir de la ligne de commande. Les données pour cette demande se trouvent dans un fichier. Je sais que via PUT, cela pourrait être fait avec l'option --upload-file
.
curl Host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
Vous recherchez l'argument --data-binary
:
curl -i -X POST Host:port/post-file \
-H "Content-Type: text/xml" \
--data-binary "@path/to/file"
Dans l'exemple ci-dessus, -i
imprime tous les en-têtes afin que vous puissiez voir ce qui se passe, et -X POST
précise que ceci est une publication. Les deux peuvent être omis en toute sécurité sans changer le comportement sur le fil. Le chemin d'accès au fichier doit être précédé d'un symbole @
afin que curl
sache lire à partir d'un fichier.
Je dois faire une demande POST via Curl à partir de la ligne de commande. Les données pour cette demande se trouvent dans un fichier ...
Tout ce que vous avez à faire est de faire commencer l'argument --data
par un @
:
curl -H "Content-Type: text/xml" --data "@path_of_file" Host:port/post-file -path
Par exemple, si vous avez les données dans un fichier appelé stuff.xml
, procédez comme suit:
curl -H "Content-Type: text/xml" --data "@stuff.xml" Host:port/post-file-path
Le nom de fichier stuff.xml
peut être remplacé par un chemin relatif ou complet vers le fichier: @../xml/stuff.xml
, @/var/tmp/stuff.xml
, ...
Si vous utilisez des données de formulaire pour télécharger un fichier, dans lequel un nom de paramètre doit être spécifié, vous pouvez utiliser:
curl -X POST -i -F parametername=@filename Host:port/xxx
La plupart des réponses sont parfaites ici, mais lorsque j’atterris ici pour mon problème particulier, je dois télécharger un fichier binaire (feuille de calcul XLSX) en utilisant la méthode POST, je vois une chose manquant , c’est généralement son juste le fichier que vous chargez, vous pouvez avoir plusieurs éléments de données de formulaire , comme commentaire dans fichier ou balises dans fichier etc comme c'était mon cas. Par conséquent, je voudrais l'ajouter ici car c'était mon cas d'utilisation, afin qu'il puisse aider les autres.
curl -POST -F comment=mycomment -F file_type=XLSX -F file_data=@/your/path/to/file.XLSX http://yourhost.example.com/api/example_url