Загрузить содержимое файла с помощью cURL - PullRequest
0 голосов
/ 17 июля 2010

У меня есть скрипт, с помощью которого я отправляю данные на сервер, используя cURL.Когда я использую форму HTML для POST тех же данных, POST выглядит примерно так, и все хорошо:

description=Something&name=aName&xml=wholeBiunchOfData&xslt=moreData

XML и XSLT большие и меняются;Я бы предпочел сохранить их во внешних файлах.Однако следующее не работает, как я ожидаю:

curl --cookie cjar --cookie-jar cjar --location --output NUL ^
 --data "name=aName&description=Something" ^
    --data "xml=@localFile.xml" ^
 --data "xslt=@localFile.xslt" ^
 http://someUrl.html

Я безуспешно пробовал различные комбинации файлов @ и local.Как мне выложить содержимое файла?

Ответы [ 2 ]

2 голосов
/ 17 июля 2010

Глядя на справочную страницу, похоже, что синтаксис --data @file не разрешает указывать имя переменной, оно должно быть в файле.http://paulstimesink.com/2005/06/29/http-post-with-curl/. Вы также можете попробовать использовать обратную галочку

curl --cookie cjar --cookie-jar cjar --location --output NUL ^
 --data "name=aName&description=Something" ^
 --data "xml=`cat localFile.xml`" ^
 --data "xslt=`cat someFile.xml`" ^
 http://someUrl.html
1 голос
/ 17 июля 2010

Я бы порекомендовал попробовать следующее:

curl --cookie cjar --cookie-jar cjar --location --output NUL ^
 --data "name=aName&description=Something" ^
    --data-urlencode "xml@localFile.xml" ^
 --data-urlencode "xslt@localFile.xslt" ^
 http://someUrl.html

XML (включая таблицы стилей) необходимо будет закодировать в URL, прежде чем он станет частью URL.

Вы также можете использовать--trace-ascii - в качестве дополнительного параметра для вывода входных и выходных данных в стандартный для дальнейшей отладки, и вы можете найти дополнительную информацию на главной справочной странице .

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...