Как вы можете выполнить HTTP POST с двоичным файлом в Jenkins? - PullRequest
0 голосов
/ 29 января 2019

Я хотел бы выполнить HTTP-запрос POST для двоичного файла, как если бы это было из Почтальона, например:

enter image description here

Обратите внимание, здесь я выбралHTTP Post с бинарной опцией и помеченный мой файл "splop.sar".

Сервер отвечает http 409, что ожидается для моего варианта использования.

Моя попытка в Дженкинсе была такойдалее, используя плагин httpRequest :

def myFile = readFile("splop.sar")
httpRequest authentication: 'userdef', consoleLogResponseBody: true, contentType: 'APPLICATION_ZIP', httpMode: 'POST', requestBody: myFile, responseHandle: 'NONE', url: 'myurl.com/service'

Проблема в том, что мой внутренний сервер отклоняет запрос как недопустимый, без сомнения, здесь не удалось выполнить кодировку.Я пробовал альтернативы, такие как:

def myFile = readFile("splop.sar").bytes

, который также не работает, а также:

def myFile = readFile("splop.sar").bytes.toString()

, который также не удается!

Что я могу сделать в Jenkins, чтобыобеспечить тот же стиль HTTP Post, который почтальон дает из моего конвейера?Я полагаю, что большая разница заключается в том, что делает запрос POST «бинарным» постом по сравнению с какой-либо другой формой?

1 Ответ

0 голосов
/ 30 января 2019

Я не думаю, что вы можете сделать это с помощью http-request-plugin, для этого есть открытая ошибка .

Вы определенно можете сделать это с помощью curl - ОтправитьPOST-запрос с данными, указанными в файле через Curl

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