Http плагин Jenkins для загрузки файла с помощью rest - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь загрузить файл на сервер отдыха от jenkins, используя плагин http. У меня есть jenkins pipel ie, где на шаге загружается файл (тип formData) на сервер с использованием rest.

метод на стороне сервера использует два параметра:

(@FormDataParam("file") InputStream file, @FormDataParam("fileName") String fileName) 

Я используя приведенный ниже метод

def filename = "${WORKSPACE}/Test.txt"
data="""{ \"fileName\" : \"Test.txt\" }"""
resp3 = httpRequest  consoleLogResponseBody: true,url: "http://<url>",contentType:'APPLICATION_OCTETSTREAM',customHeaders:[[name:'Authorization', value:"Basic ${auth}"]],httpMode: 'POST',multipartName: 'Test.txt',uploadFile: "${filename}",requestBody:data,validResponseCodes: '200'

, но когда я запускаю код состояния 400 и в журналах сервера появляется сообщение о том, что не получен ни один файловый поток, ни имя файла, то есть невозможно получить оба аргумента.

Пожалуйста, дайте мне знать, где это не так

С уважением

1 Ответ

0 голосов
/ 27 марта 2020

Вы можете попробовать использовать curl вместо встроенных методов Jenkins:

curl -XPOST http://<url> -H 'Content-Type: application/octet-stream' -H 'Authorization: Basic ${auth}'  --data-binary '{\"fileName\" : \"Test.txt\" }'

Вы можете сначала отладить его из оболочки. Как только он заработает, оберните его в директиву sh:

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