J'utilise l'utilitaire de ligne de commande cURL pour envoyer HTTP POST à un service Web. Je souhaite inclure le contenu d'un fichier en tant qu'entité de corps du POST. J'ai essayé d'utiliser -d </path/to/filename>
ainsi que d'autres variantes de type info comme --data </path/to/filename> --data-urlencode </path/to/filename>
etc ... le fichier est toujours joint. J'en ai besoin en tant qu'entité physique.
Je crois que vous recherchez la syntaxe @filename
, par exemple:
bande de nouvelles lignes
curl --data "@/path/to/filename" http://...
garder de nouvelles lignes
curl --data-binary "@/path/to/filename" http://...
=====
curl enlèvera toutes les nouvelles lignes du fichier. Si vous souhaitez envoyer le fichier avec des nouvelles lignes intactes, utilisez --data-binary
à la place de --data.
Je sais que la question a été résolue, mais dans mon cas, j’essayais d’envoyer le contenu d’un fichier texte à l’API Slack Webhook et, pour une raison quelconque, la réponse ci-dessus ne fonctionnait pas. Quoiqu'il en soit, c'est ce qui a finalement fait l'affaire pour moi:
curl -X POST -H --silent --data-urlencode "payload={\"text\": \"$(cat file.txt | sed "s/\"/'/g")\"}" https://hooks.slack.com/services/XXX