Comment envoyer du contenu de fichier en tant qu'entité physique en utilisant cURL

j'utilise cURL command line utility pour envoyer un message HTTP à un service web. Je veux inclure un fichier de contenu que le corps de l'entité de la POSTE. J'ai essayé d'utiliser -d </path/to/filename> ainsi que d'autres variantes avec des informations de type comme --data </path/to/filename> --data-urlencode </path/to/filename> etc... le dossier est toujours joint. J'en ai besoin en tant qu'entité corporelle.

130
demandé sur Roy Hinkley 2013-04-10 01:29:58

3 réponses

je crois que vous cherchez la syntaxe @filename , par exemple:

la bande des nouvelles lignes

curl --data "@/path/to/filename" http://...

de nouvelles lignes

curl --data-binary "@/path/to/filename" http://...

=====

curl supprimera toutes les nouvelles lignes du fichier. Si vous voulez envoyer le fichier avec newlines intact, utilisez --data-binary à la place de --data

222
répondu Jeffrey Froman 2018-06-13 12:39:52

je sais qu'on a répondu à la question, 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. Peu importe qui, 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
2
répondu cookiedough 2018-06-08 18:36:33

curl-X d'après-H --silent --data-urlencode "charge utile={\"text\": \"$(cat fichier.txt | sed " s / \" / '/ g")\"} https://hooks.slack.com/services/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ASDA

le fichier doit être dans votre répertoire de travail actuel

0
répondu Nuwan Vithanage 2018-09-27 15:33:30