Как отправить содержимое файла в качестве объекта тела с помощью cURL



Я использую утилиту командной строки cURL для отправки HTTP POST в веб-службу. Я хочу включить содержимое файла в тело поста. Я пробовал использовать -d </path/to/filename> а также другие варианты с типом информации, как --data </path/to/filename> --data-urlencode </path/to/filename> etc... файл всегда прилагается. Мне это нужно, как сущность тела.

524   3  

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

    Ничего не найдено.