Search code examples
restjenkinsjenkins-pipeline

Jenkins http plugin to upload file using rest


I am trying to upload a file to a rest server from jenkins using http plugin. I have a jenkins pipelie where a step involves loading a file(type formData) to a server using rest.

the server side method uses two parameters:

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

I am using the below method

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'

but when I run the status code is 400 and in the server logs the message is that no filestream and no filename is received i.e not able to get both the arguments.

Please let me know where it is getting wrong

Regards


Solution

  • Since I was running on windows so bat + curl worked for me .With this workaround I was able to transfer files using jenkins and rest However using httpRequest from jenkins inbuild library is still not working.