问题描述
在 Jenkins Pipeline 中,虽然可以使用 Java 类库或者 Groovy 类库发送 HTTP 请求,但是这不是 Jenkins 推荐的做法。
该笔记将记录:在 Jenkins Pipelie 中,如何发送 HTTP 请求。
解决办法
使用 Http Request 插件
插件地址:https://plugins.jenkins.io/http_request
步骤手册:https://www.jenkins.io/doc/pipeline/steps/http_request/
仓库地址:https://github.com/jenkinsci/http-request-plugin
发送普通 HTTP 请求
def response = httpRequest( url: 'http://localhost:8080/jenkins/api/json?pretty=true', // 请求地址 quiet: true, // 不显示请求日志 validResponseCodes: "100:399,403" // 设置可接受的返回码,其他状态码将返回异常 ) println(response.status) println(response.content)
使用 Basic Auth 认证
第一步、创建用户及密码凭证
Credentials => Add Credentials => Username with password
第二步、在请求中引用凭证
def response = httpRequest( url: 'http://localhost:8080/jenkins/api/json?pretty=true', authentication: "<credentialsId>", )
相关文章
「Jenkins Pipeline」- 常见问题处理
「Jenkins Pipeline」- 在首次扫描后,禁止自动构建
「Jenkins Pipeline」- 发送邮件
「Jenkins Pipeline」- 接受构建通知,并拉取代码
「Jenkins Pipeline」- 配置多版本NodeJS构建环境
「Jenkins Pipeline」- 构建Docker镜像
「Jenkins Pipeline」- 放弃当前构建
参考文献
Pipeline Steps Reference/HTTP Request Plugin
validResponseCodes cannot be empty or null
How to pass a range of validResponseCodes for Jenkins pipeline httpRequest method
Basic Auth with Jenkins http-request-plugin