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



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



curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
881   4  

4 ответов:

Вы ищите :

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

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

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

все, что вам нужно сделать, это иметь --data аргумент начинается с @:

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

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

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

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

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

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

большинство ответов идеально здесь, но когда я приземлился здесь для моей конкретной проблемы, я должен загрузить binary file(XLSX spread sheet) используя POST, Я вижу одну вещь отсутствует, т. е. обычно это не просто файл, который вы загружаете, у вас может быть больше форма элемента данных,как комментарий к файлу или теги к файлу и т. д., Как было в моем случае. Поэтому я хотел бы добавить его здесь, поскольку это был мой прецедент, чтобы он мог помочь другим.

curl POST -F comment=mycomment -F file_type=XLSX -F file_data=@/your/path/to/file.XLSX http://yourhost.example.com/api/example_url

Comments

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