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