在Jenkins任务中拉取网络URL数据并将换行字符串转换为字符串数组
解决步骤
httpRequest 方法返回的是响应对象,不是直接的响应文本,你需要先取.content属性拿到实际的文本内容,再做分割处理。
完整实现代码
// 发起HTTP请求,failOnError配置请求失败时直接中断流水线 def response = httpRequest url: 'https://blabla.blob.core.windows.net/data/ips.txt', failOnError: true // 分割文本为数组,同时处理冗余空白和空行 def ipList = response.content.split('\n')*.trim().findAll { it }
处理逻辑说明
split('\n'):以换行符为分隔符,把一整段文本拆分为列表*.trim():Groovy的扩展语法,遍历列表所有元素,统一去除首尾的空白字符(包括空格、Windows格式换行的回车符\r、制表符等),避免不同操作系统换行格式带来的脏数据findAll { it }:过滤掉列表中的空字符串,排除文件末尾空行、文件内空白行的干扰
后续使用示例
拿到的ipList就是标准的字符串数组,可以直接传递给后续步骤使用:
// 遍历数组执行shell命令 ipList.each { singleIp -> sh "curl http://${singleIp}/health" }
内容的提问来源于stack exchange,提问作者Shahar
相关产品推荐
相关产品推荐

