J'utilise l'utilitaire en ligne de commande cURL pour envoyer un HTTP POST à un service web. Je veux inclure le contenu d'un fichier comme entité de corps du POST. J'ai essayé d'utiliser -d /chemin/vers/nomdefichier
ainsi que d'autres variantes avec des informations de type comme --data /chemin/vers/nomdefichier> --data-urlencode /chemin/vers/nomdefichier
etc... le fichier est toujours attaché. Je le veux comme entité de corps.
Réponses
Trop de publicités?Je crois que vous cherchez la syntaxe @filename
, par exemple :
supprimer les sauts de ligne
curl --data "@/path/to/filename" http://...
garder les sauts de ligne
curl --data-binary "@/path/to/filename" http://...
curl va supprimer tous les sauts de ligne du fichier. Si vous souhaitez envoyer le fichier en conservant les sauts de ligne, utilisez --data-binary
à la place de --data
Je sais que la question a été répondue, 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 n'a pas fonctionné. Quoi qu'il en soit, voici ce qui a finalement fonctionné pour moi :
curl -X POST -H --silent --data-urlencode "payload={\"text\": \"$(cat file.txt | sed "s/\"/'/g")\"}" https://hooks.slack.com/services/XXX
Curl https://upload.box.com/api/2.0/files/3300/content -H "Authorization: Bearer $access_token" -F file=@"C:\Crystal Reports\Crystal Reports\mysales.pdf"
curl https://upload.box.com/api/2.0/files/3300/content -H "Authorization: Bearer $access_token" -F file=@"C:\Crystal Reports\Crystal Reports\mysales.pdf"