Я использую утилиту командной строки cURL для отправки HTTP POST в веб-службу. Я хочу включить содержимое файла в качестве сущности тела POST. Я пытался использовать, -d </path/to/filename>
а также другие варианты с типом информации, как и --data </path/to/filename> --data-urlencode </path/to/filename>
т.д ... файл всегда прикреплен. Мне нужно это как сущность тела.
208
cat file.txt | curl --data "@-" `(< url.txt )`
@-
говорит curl читать из stdin. Вы также можете просто использовать перенаправление,(< x.txt )
чтобы вставить все, что вы хотите. Если вы используете Bash.--data-binary
вместо--data
.name:value
пары, такие как имя пользователя и пароль, добавьте необходимые заголовки, соответствующие ожиданиям службы:--header: "<header_name>:<header_value>"
в виде одной строки.Я знаю, что на вопрос был дан ответ, но в моем случае я пытался отправить содержимое текстового файла в API Slack Webhook, и по какой-то причине вышеуказанный ответ не сработал. Во всяком случае, это то, что, наконец, помогло мне:
источник
curl: argument list too long
в этом случае принятый ответ спасает жизньcurl --data "@/path/to/filename" http://...
В моем случае,
@
вызвало какую-то проблему с кодировкой, я все же предпочитаю свой старый способ:источник