jenkins - 如何将 HTTP 请求的正文设置为文件的内容
问题描述
我想使用工作区中的文件内容作为主体,从 Jenkins 管道调用 RESTful 端点。我正在尝试使用 HTTP 请求插件(https://plugins.jenkins.io/http_request),但无法弄清楚如何做到这一点。基本流程: 1) 从源代码控制获取文件,即 GitHub 2) 使用 shell 脚本通过 sed 更新我的工作区中的文件 3) 使用该文件作为 HTTP 请求调用的主体
我一直在尝试将文件的内容复制到变量中,然后在请求中使用它,但这不起作用,因为我似乎无法弄清楚如何将文件内容保存到变量中,然后在下一个中引用它步。
解决方案
这是一个我现在正在工作的简单管道,如果其他人试图实现这一点,可以将其用作示例。注意我必须调整 Blue Ocean 创建的代码,因为它将环境变量放在单引号中。
pipeline {
agent any
stages {
stage('stage1') {
steps {
httpRequest(url: 'http://banka.mybluemix.net/loans/v1/quote?loanAmount=9501.64&annualInterestRate=28&termInMonths=36', acceptType: 'APPLICATION_JSON', contentType: 'APPLICATION_JSON', httpMode: 'GET', responseHandle: 'STRING', validResponseCodes: '200', outputFile: 'body.json')
script {
env.requestBody = readFile 'body.json'
}
echo "${env.requestBody}"
httpRequest(url: 'https://postman-echo.com/post', acceptType: 'APPLICATION_JSON', contentType: 'APPLICATION_JSON', httpMode: 'POST', outputFile: 'postmanOutput.txt', requestBody: "${env.requestBody}", responseHandle: 'STRING', validResponseCodes: '200')
script {
env.POSTMANOUT = readFile 'postmanOutput.txt'
}
echo "${env.POSTMANOUT}"
}
}
}
}
推荐阅读
- python - Python 中 Trimesh 模块的 .to_planar() 函数将 Path2D 保存为 .PNG 或 .JPEG
- vba - 如果未在 VBA 中打开,则打开 pbix 文件
- javascript - await 仅在异步函数的异步函数错误中有效
- reactjs - 使用 useFormik 钩子仅验证 formik 表单的一部分
- javascript - javascript字符串日期来自数组并按天分组并每天返回新数组
- disk - print_req_error:关键目标错误,dev sdb,扇区 0
- sql-server - PowerDesigner 工程 Unicode
- groovy - Groovy 用唯一编号逐一替换字符串中的特定单词
- python-3.x - 蛮力所有可能的组合
- forms - Drupal 8 中如何清空不可见的字段?