問題描述
在 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