Как отправить содержимое файла в качестве объекта тела с помощью cURL
Я использую утилиту командной строки cURL для отправки HTTP POST в веб-службу. Я хочу включить содержимое файла в тело поста. Я пробовал использовать -d </path/to/filename> а также другие варианты с типом информации, как --data </path/to/filename> --data-urlencode </path/to/filename> etc... файл всегда прилагается. Мне это нужно, как сущность тела.
3 ответов:
Я считаю, что вы ищете
@filenameсинтаксис, например:strip новые линии
curl --data "@/path/to/filename" http://...сохранить новые строки
curl --data-binary "@/path/to/filename" http://...=====
curl удалит все новые строки из файла. Если вы хотите отправить файл с новыми строками нетронутыми, используйте
--data-binaryв месте сведения
Я знаю, что вопрос уже ответили, но в моем случае я пытался отправить содержимое текстового файла Slack Webhook api и по какой-то причине выше ответ не работал. В любом случае, это то, что, наконец, сделал трюк для меня:
curl -X POST -H --silent --data-urlencode "payload={\"text\": \"$(cat file.txt | sed "s/\"/'/g")\"}" https://hooks.slack.com/services/XXX
керл -х пост -х --молчат --данные-функция urlencode "полезная нагрузка={\"текст\": \"$(Cat-файл.txt | sed "s / \" / '/ g")\"}" https://hooks.slack.com/services/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ASDA
файл должен быть в вашем текущем рабочем каталоге
Comments