我想对二进制文件执行HTTP POST,就像我从邮递员这样:
请注意,这里我选择了带有二进制选项的HTTP Post,并标记了我的文件“ splop.sar”。
服务器会回复我的用例预期的http 409。
使用httpRequest插件,我在Jenkins的尝试如下:
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请求相对于其他某种形式成为“二进制”帖子?
答案 0 :(得分:1)
我认为您无法使用http-request-plugin完成此操作,其中有一个open bug for that。
您绝对可以使用curl-Send POST Request with Data Specified in File via Curl
curl -i -X POST host:port/post-file \
-H "Content-Type: text/xml" \
--data-binary "@path/to/file"