http - Jenkins:使用 Jenkins 请求插件通过 HTTP POST 将文件上传到服务器
问题描述
我正在尝试通过管道将软件文件从 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>" + '--'
有没有其他方法可以将文件上传到服务器?或者你有使用插件的解决方案吗?
解决方案
该httpRequest
插件确实进行文件上传。我以前用过它。
设置uploadFile
为上传文件的路径,如有必要,设置contentType
为您选择的内容类型。
推荐阅读
- bluetooth - 是否有通过 BLE 发送 GPS 导航的标准方法?
- postman - 如何将请求参数存储在变量中并在另一个请求中使用它
- c# - 如何在 Wix Installer 中指定安装目录路径
- emoji - 为什么有些网站将表情符号呈现为符号?(例如:警告表情符号“⚠️”)
- javascript - Dockerfile 复制时的奇怪行为
- python - Ctypes,创建 BigEndianStructure 返回 4 个字节而不是 3
- apache-kafka - vertx kafka 客户端使用消息并按顺序执行 REST api 调用
- react-native - 华为 Map Kit React Native 不渲染地图
- json - 如果它们是两种类型之一,Python会获取文件列表
- java - Java/JAXB:解组支持单值和多值的 XML 属性