【问题标题】:Jenkins: Uploading File to Server via HTTP POST using Jenkins Request PluginJenkins:使用 Jenkins 请求插件通过 HTTP POST 将文件上传到服务器
【发布时间】:2021-01-07 08:24:28
【问题描述】:

我正在尝试通过管道将软件文件从 Jenkins 上传到服务器。服务器 API 需要以下信息:

Content-Type: multipart/form-data;
 
boundary= 'boundary'

body = 
--'boundary'
Content-Disposition: form-data; name=file; filename=origFilename

????
--'boundary'--

很遗憾,HTTP 请求插件不支持 Content-Type "multipart/form-data" (https://www.jenkins.io/doc/pipeline/steps/http_request/)

我试图忽略内容类型(因为我可以选择忽略或给出错误的内容)并得到 415 错误代码。由于我正在尝试发送一个 .txt 文件并且知道服务器接受文本文件(我通过 Postman 成功上传了一个),我认为这可能是由内容类型引起的。

当前代码:

httpRequest  httpMode: 'POST', url: "https:<host>.com/", requestBody: '--' + "<boundary>" + 'Content-Disposition: form-data; name="file";' + 'filename="JenkinsDemo.txt"' + '???' + "<boundary>" + '--'

还有其他方法可以将文件上传到服务器吗?或者你有使用插件的解决方案吗?

【问题讨论】:

  • 试过HTTP Post或者Publish over SSH
  • HTTP Post 可以正常工作,但我无法找到文档来了解如何使用它...您对此有意见吗?通过 SSH 发布不适合我的情况。谢谢你的建议!
  • 我只从用户安装“HTTP 插件”(HTTP 请求,而不是 POST)的未详细请求中了解到这一点。我建议向开发人员发送电子邮件(请参阅来源pom.xml 获取电子邮件)并询问他 - 文档在哪里以及如何针对它提出问题。 TBH,我什至不知道它是如何进入插件库的;没有测试,没有文档,6 年内没有更新,使用 jdk 1.6 和 Jenkins-plugin:1.480。那时标准更宽松?
  • 我给他写了一封电子邮件,但我也发现我可以使用 CURL 让它运行。不幸的是,我现在在 CURL 请求中遇到了另一个问题,我在另一个问题 (stackoverflow.com/questions/65629304/…) 中提到了这个问题,感谢您的帮助! :)

标签: http jenkins groovy jenkins-pipeline content-type


【解决方案1】:

httpRequest 插件进行文件上传。我以前用过。

uploadFile 设置为您要上传的文件的路径,如有必要,将contentType 设置为您选择的内容类型。

【讨论】:

  • 这是作为评论的意思吗?
  • 我看不出这如何回答本页顶部的问题,但它应该。请edit根据How to Answer或删除答案。否则,它可能会被标记为“不是答案”并被删除。
  • 我建议不要在答案中使用修辞问题。他们冒着被误解为根本不是答案的风险。您正在尝试回答此页面顶部的问题,不是吗?否则请删除此帖。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2011-12-03
  • 2012-03-23
  • 2011-09-23
相关资源
最近更新 更多