Подтвердить что ты не робот

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

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

4b9b3361

Ответ 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