Envoi d'une Requête POST avec les Données Spécifiées dans le Fichier via Curl
J'ai besoin de faire une demande POST via Curl à partir de la ligne de commande. Les données pour cette demande est situé, dans un fichier. Je sais que via METTRE cela pourrait être fait avec la --upload-file
option.
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
- Vérifier ma réponse, stackoverflow.com/questions/6213509/send-json-post-using-php/...
- Désolé, peut-être que j'ai tort décrit mon problème, j'ai besoin d'envoyer une requête non pas via php-curl mais juste via la commande curl à partir de la ligne de commande de système d'exploitation linux.
- Voir aussi envoyer/publier un fichier xml à l'aide de curl ligne de commande.
Vous devez vous connecter pour publier un commentaire.
Vous êtes à la recherche pour le
--data-binary
argument:Dans l'exemple ci-dessus,
-i
imprime tous les en-têtes de sorte que vous pouvez voir ce qu'il se passe, et-X POST
rend explicite le fait que c'est un post. Les deux peuvent être en toute sécurité omis sans changer le comportement sur le fil. Le chemin d'accès au fichier doit être précédée par une@
symbole, afin decurl
sait lire à partir d'un fichier.@path/to/file
.xml
@
partie est extrêmement important!curl
à la bande des retours à la ligne, mais--data-binary
ne sera pas.Tout ce que vous devez faire est de le
--data
argument de commencer avec un@
:Par exemple, si vous avez les données dans un fichier appelé
stuff.xml
alors vous feriez quelque chose comme:La
stuff.xml
nom de fichier peut être remplacé par un parent ou d'un chemin d'accès complet vers le fichier:@../xml/stuff.xml
,@/var/tmp/stuff.xml
, ...Si vous utilisez des données de formulaire à télécharger le 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
parametername=
m'a vraiment aidé 🙂La plupart des réponses sont parfait ici, mais quand j'ai atterri ici pour mon problème, j'ai télécharger un fichier binaire (XLSX feuille de calcul) à l'aide de la méthode POST, je vois une chose manquant, c'est à dire généralement pas seulement fichier que vous chargez, vous pouvez avoir plus de forme des éléments de données, comme le commentaire de fichiers ou les tags pour fichiers etc comme ce fut mon cas. Par conséquent, je tiens à ajouter ici, comme c'était mon cas d'utilisation, de sorte qu'il peut aider d'autres personnes.