Как я могу отправить / опубликовать XML-файл на локальном сервере http: // localhost: 8080, используя curl из командной строки?
Какую команду я должен использовать?
источник
Как я могу отправить / опубликовать XML-файл на локальном сервере http: // localhost: 8080, используя curl из командной строки?
Какую команду я должен использовать?
Если этот вопрос связан с вашими другими вопросами Hudson, используйте команду, которую они предоставляют. Вот так с XML из командной строки:
$ curl -X POST -d '<run>...</run>' \
http://user:pass@myhost:myport/path/of/url
Вам нужно немного изменить его, чтобы прочитать из файла:
$ curl -X POST -d @myfilename http://user:pass@myhost:myport/path/of/url
Прочтите справочную страницу . после абстрактного параметра -d.
-d / - данные
(HTTP) Отправляет указанные данные в запросе POST на HTTP-сервер так же, как браузер, когда пользователь заполняет HTML-форму и нажимает кнопку отправки. Это заставит curl передавать данные на сервер с помощью application-type / x-www-form-urlencoded. Сравните с -F / - формой.
-d / - данные такие же, как --data-ascii. Чтобы публиковать данные исключительно в двоичном формате, вы должны использовать опцию --data-binary. Для URL-кодирования значения поля формы вы можете использовать --data-urlencode.
Если какой-либо из этих параметров используется более одного раза в одной командной строке, указанные фрагменты данных будут объединены с разделительным символом & -symbol. Таким образом, использование '-d name = daniel -d skill = lousy' сгенерирует пост-чанк, который выглядит как 'name = daniel & skill = lousy'.
Если вы начинаете данные с буквы @, остальное должно быть именем файла для чтения данных, или - если вы хотите, чтобы curl считывал данные из stdin. Содержимое файла уже должно быть в кодировке URL. Несколько файлов также могут быть указаны. Публикация данных из файла с именем 'foobar', таким образом, будет выполняться с --data @foobar.
The contents of the file must already be URL-encoded.
XML-файлы OP, конечно же, нет.--header "Content-Type:application/xml"
вы не должны кодировать URL-L
, не используйте-X POST
его, так как перенаправленный запрос также будет использовать POST. Если вы просто используете -d, как подсказывает @Tai, этого не произойдет-d
полоски переносятся из файлов. Чтобы избежать этого, используйте--data-binary
вместо этого.Из справочной страницы я считаю, что это те дроиды, которых вы ищете:
Так что в вашем случае это было бы что-то вроде
curl -F file=@/some/file/on/your/local/disk http://localhost:8080
источник
file=@-
полезен, если вы хотите передать свой файл.Вы можете использовать опцию --data с файлом.
Запишите содержимое XML в файл с именем soap_get.xml и с помощью команды curl отправьте запрос:
источник
С Дженкинс 1,494, я был в состоянии послать файл параметр задания на Ubuntu Linux 12.10 с использованием
curl
с--form
параметрами:На сервере Jenkins я настроил задание, которое принимает один параметр: параметр загрузки файла с именем
myfileparam
.Первая строка этого вызова curl создает веб-форму с именем параметра
myfileparam
(как в задании); его значением будет содержимое файла в локальной файловой системе с именем/local/path/to/your/file.txt
.@
Префикс символа говорит локон , чтобы послать локальный файл вместо данного файла.Вторая строка определяет запрос JSON, который соответствует параметрам формы в первой строке: параметру файла с именем
myfileparam
.Третья строка активирует кнопку Build формы. Четвертая строка - это URL задания с суффиксом "/ build".
Если этот вызов успешен, curl возвращается
0
. Если это не удается, ошибка или исключение из службы выводится на консоль. Этот ответ многое берет из старого поста в блоге, касающегося Хадсона , который я разобрал и переработал для своих собственных нужд.источник
Вот как вы можете POST XML в Windows, используя командную строку curl в Windows. Для этого лучше использовать пакетный файл / .cmd:
источник
Если у вас есть несколько заголовков, вы можете использовать следующее:
источник
Вы можете использовать эту команду:
источник
Если вы используете curl в Windows:
источник