You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Jenkins声明式管道中如何将curl响应保存到变量?

解决Jenkins声明式管道中curl返回多余内容的问题

要只捕获URL返回的JSON响应,你需要调整脚本写法,抑制命令回显并让curl输出仅保留响应内容:

方法一:优化curl命令(bat环境)

修改environment块中的代码,给curl命令加@前缀抑制bat回显,同时添加curl的-s参数开启静默模式:

environment {
    token = bat(returnStdout: true, script: '@curl -s https://anypoint.mulesoft.com/accounts/login -H "Content-Type: application/json" -d "{\"username\" : \"user\",\"password\" : \"pwd\"}"').trim()
}

关键调整说明:

  • @:放在curl命令前,阻止bat输出执行的命令行本身
  • -s:curl的静默参数,关闭进度条、连接状态等多余输出(若需要在出错时显示错误信息,可改用-sS)
  • .trim():去除响应首尾的空白字符和换行符

方法二:改用PowerShell处理(更适配JSON场景)

如果你的Jenkins节点支持PowerShell,推荐用Invoke-RestMethod直接处理请求,原生支持JSON且输出更干净:

environment {
    token = powershell(returnStdout: true, script: '$response = Invoke-RestMethod -Uri "https://anypoint.mulesoft.com/accounts/login" -Method Post -ContentType "application/json" -Body "{\"username\":\"user\",\"password\":\"pwd\"}"; ConvertTo-Json $response').trim()
}

以上两种方式都能让你获取到纯净的JSON响应内容,不会夹杂命令执行的额外信息。

内容的提问来源于stack exchange,提问作者Abhay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 18:55:29