Отправить POST запрос с данными, указанными в файле через Curl
мне нужно сделать запрос POST через Curl из командной строки. Данные для этого запроса находятся в файле. Я знаю, что через PUT это можно сделать с помощью .
curl host:port/post-file -H "Content-Type: text/xml" --data "contents_of_file"
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-pathThe
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