Отправить запрос POST с данными, указанными в файле через Curl

Мне нужно сделать запрос POST через Curl из командной строки. Данные для этого запроса находятся в файле. Я знаю, что через PUT это можно сделать с помощью опции --upload-file.

curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
+111
20 июн. '11 в 9:02
источник поделиться
3 ответа

Вы ищете аргумент --data-binary:

curl -i -X POST host:port/post-file -H "Content-Type: text/xml" --data-binary "@path/to/file"

В приведенном выше примере -i распечатывает все заголовки, чтобы вы могли видеть, что происходит, и -X POST делает его явным, что это сообщение. Оба они могут быть безопасно опущены без изменения поведения на проводе. Путь к файлу должен предшествовать символ @, поэтому curl знает, как читать из файла.

+184
20 июн. '11 в 9:13
источник

Связанные вопросы


Похожие вопросы

Если вы используете данные формы для загрузки файла, в котором должно быть указано имя параметра, вы можете использовать:

curl -X POST -i -F parametername=@filename host:port/xxx

+5
05 янв. '17 в 10:32
источник

Мне нужно сделать запрос POST через Curl из командной строки. Данные для этого запроса находятся в файле...

Другие ответы кажутся излишне сложными. Все, что вам нужно сделать, это привести аргумент --data с помощью @:

curl -H "Content-Type: text/xml" --data "@path_of_file" host:port/post-file 

Например, если у вас есть данные в файле с именем stuff.xml, вы должны сделать что-то вроде:

curl -H "Content-Type: text/xml" --data "@stuff.xml" host:port/post-file 

Имя файла stuff.xml можно заменить на относительный или полный путь к используемому файлу: @./xml/stuff.xml, @/var/tmp/stuff.xml,...

+2
03 нояб. '17 в 17:58
источник

Посмотрите другие вопросы по меткам или Задайте вопрос