使用HTTP Request插件,就能在Jenkins pipeline中发送HTTP请求给第三方系统,这是最通用的jenkins与第三方系统集成的方式之一
HTTP Request 插件提供了httpRequest 步骤,代码示例如下:
steps {
script {
// 拼接字符
head = "\"构建记录:#${env.BUILD_ID},分支:#${},详细信息如下:"
s1 = ">应用名称: <font color=\\\"info\\\">${}</font>"
s2 = ">环境: <font color=\\\"info\\\">${}</font>"
s3 = ">构建状态: <font color=\\\"info\\\">构建成功🥳</font>"
s4 = ">提交者: <font color=\\\"info\\\">${}</font>"
s5 = ">提交ID: <font color=\\\"info\\\">${}</font>"
s6 = ">提交内容: <font color=\\\"info\\\">${}</font>"
s7 = ">[查看详细构建信息]()"
def msg = "${head}"+"\n"+ "${s1}"+"\n"+"${s2}"+"\n"+"${s3}"+"\n"+"${s4}"+"\n"+"${s5}"+"\n"+"${s6}"+"\n"+"${s7}\""
def body = "{ \"msgtype\": \"markdown\", \"markdown\": { \"content\": ${msg} } }"
def response = httpRequest (
url: "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=${paramMap.WEBHOOK_TOKEN}",
httpMode: "POST",
contentType: "APPLICATION_JSON_UTF8",
requestBody: "${body}",
responseHandle: 'NONE',
wrapAsMultipart: false
)
}
}
httpRequest步骤返回的response对象包含两个字段。
- content :响应内容
- status :响应码
以下是httpRequest步骤支持的参数
- url:字符串类型,请求URL
- acceptType:枚举类型,HTTP请求Header的“Accept”的值类型为NOT_SET.TEXT_HTML、TEXT_PLAIN.APPLICATION_FORM、APPLICATION_JSON、APPLICATION_JSON_UTF8、APPLICATION_TAR、APPLICATION_ZIP、APPLICATION_OCTETSTREAM。
- authentication :字符串类型,Username with password凭证的ID,采用的是HTTP Basic认证方式
- consoleLogResponseBody :布尔类型,是否将请求的响应body 打印出来
- contentType:枚举类型,HTTP请求Header的“Content-type”的值类型,与acceptType支持的枚举一样
- customHeaders : HttpRequestNameValuePair对象数组,HTTP请求Header部分的内容,该对象有3个参数
- name :字符串类型,Header名称
- value :字符串类型,Header值。
- maskValue :布尔类型,是否隐藏 Header值。如果设置为true,则在打印时使用“*”代替。
- httpMode:枚举类型,HTTP方法,有GET(默认)、HEAD.POST、PUT、DELETE、OPTIONS、PATCH。
- httpProxy:字符串类型,HTTP代理地址
- ignoreSslErrors :布尔类型,是否忽略SSL错误。
- requestBody :字符串类型,请求的body内容。
- timeout :整型,超时时间,单位为秒。默认值为0,代表不设置超时时间。
- validResponseCodes :字符串类型,代表HTTP请求成功的状态码。它支持3种格式的值。
- 单状态值:比如200,当收到200响应状态码时,表示HTTP请求成功。
- 多状态值:当响应状态码符合多个状态码中的一个时,代表请求成功。多个状态码之间使用逗号(,)分隔。比如200,404,500。
- 范围状态值∶格式为“From : To”。比如200 : 302,代表收到200到J302的响应状态码都代表请求成功。
- validResponseContent :字符串类型,比如设置它的值为”showme.codes”,那么只有当HTTP返回的内容中包含了 “showme.codes”时,才代表请求成功。
- quiet :布尔类型,是否关闭所有的日志打印,默认值为false。
- responseHandle:枚举类型,获取HTTP响应内容的方式。其值可以为
- NONE:不读取响应内容。
- LEAVE_OPEN:当执行完请求后,并不会返回响应的内容,而是返回一个打开了的inputStream,由你自己决定该如何读取响应内容。但是在使用完之后,记得调用input-Stream的close ()方法关闭。
- STRING(默认值)∶将响应内容转换成一个字符串。
- outputFile:字符串类型,请求响应内容的输出路径。
Comments NOTHING