Jenkins构建完成后如何调用外部服务器REST API
结论
这个需求完全可以实现,安装HTTP Request插件后在构建后操作列表找不到对应选项,不是功能不支持,是新版插件的入口位置/展示名称和老版本有差异,或者插件安装后未完成加载。
实现方案
方案1:Pipeline脚本调用(推荐,适配所有项目类型)
这是兼容性最好的用法,不管是自由风格项目、流水线项目都能用,不需要在可视化列表里找入口,直接在构建完成的触发逻辑里调用插件封装的httpRequest方法即可。
示例流水线代码:
pipeline { agent any stages { // 这里写你原有构建的全部逻辑 stage('项目构建') { steps { sh 'npm run build' // 替换成你自己的构建命令 } } } post { // 无论构建成功、失败还是中止,都会触发接口调用,按需改成success/failure等条件即可 always { httpRequest( httpMode: 'POST', // 接口请求方式,支持GET/POST/PUT/DELETE等 url: 'http://你的外部服务REST接口地址', contentType: 'APPLICATION_JSON', acceptType: 'APPLICATION_JSON', requestBody: """{"buildNum":${currentBuild.number},"result":"${currentBuild.result}"}""", validResponseCodes: '200,201', // 配置认为调用成功的响应码,避免Jenkins误判构建失败 consoleLogResponseBody: true // 把接口响应打印到构建日志,方便排查问题 ) } } }
如果用的是自由风格项目,直接在构建后操作里添加「执行Groovy脚本」步骤,把上面post块里的httpRequest调用逻辑单独摘出来写进去就行。
方案2:可视化配置入口(仅适配自由风格项目)
如果你不想写脚本,按下面的步骤排查找配置项:
- 插件安装完成后必须重启Jenkins,未重启时插件不会加载,列表里肯定找不到对应选项
- 打开构建后操作的下拉列表,不要找名字带「HTTP Request」的选项,新版插件的展示名称是Send an HTTP request to a URL,按首字母S分类查找即可
- 找到选项后直接填入接口地址、请求方式、参数等信息保存即可。
常见注意事项
- 调用HTTPS接口如果报证书不信任错误,可以在
httpRequest参数里加ignoreSslErrors: true临时跳过校验,生产环境建议把服务端证书导入Jenkins信任库 - 接口需要鉴权的话,提前在Jenkins凭据管理里存好Token/账号密码,调用时通过
authentication: '你的凭据ID'参数传入,不要把密钥硬编码在脚本里 - 如果需要在接口请求里带构建相关的动态参数,直接通过
currentBuild内置对象取构建号、构建结果、构建地址等信息拼接即可
内容的提问来源于stack exchange,提问作者seok0.2
相关产品推荐
相关产品推荐

