Groovy脚本中的Curl命令无法执行(在Linux中)

问题描述 投票:0回答:1

我尝试在groovy脚本中实现curl命令。我的命令目标是在Asana中创建一个任务。

是否有可能groovy在运行时更改命令? (有可能groovy对data-urlencode参数有一些问题)这与curl的版本有关吗? (版本7.64.0)(当我单独运行时效果很好)

该命令在命令提示符下完美运行,但在我尝试在groovy脚本中运行时失败。

1 def opsAlert = opsgenie.getAlert(alertId: "${alert.alertId}");
2 //logger.warn("${opsAlert}"); //DEBUG
3 if(opsAlert.isEmpty()){
4 throw new Exception("Failed to get the alert details, opsAlert is null!");
5 }
6
7 if(opsAlert.source.equals("[email protected]")){
8 def projects = "<projectid>";
9 def name = opsAlert.details.sensorId;
10 def notes = opsAlert.message;
11 def authorizationToken = "Bearer <mytoken>";
12
13 def command = "curl https://app.asana.com/api/1.0/tasks ";
14 command += "-H \"Authorization: ${authorizationToken}\" ";
15 command += "--data-urlencode \"projects=${projects}\" ";
16 command += "--data-urlencode \"notes=${notes}\" ";
17 command += "--data-urlencode \"name=${name}\"";
18 logger.warn("${command}"); //DEBUG
19
20 def commandResult = "${command}".execute();
21 commandResult.waitFor();
22 logger.warn("${commandResult}");
23
24 //def output1 = commandResult.text;
25 def output2 = commandResult.err.text;     
26 //logger.warn("${output1}"); //DEBUG
27 logger.warn("${output2}"); //DEBUG
28 return;
29 } else {
30 throw new Exception("S(s)ource was not bclaeys!")
31 }

这是我尝试运行的命令:(我也尝试了-v选项但是没有产生有用的输出)

卷曲-H“授权:持票人”https://app.asana.com/api/1.0/tasks --data-urlencode“projects = projectId”--data-urlencode“notes = message”--data-urlencode“name = 1008”

这会产生以下输出卷曲:选项 - :未知卷曲:尝试'curl --help'或'curl --manual'获取更多信息

任何人都可以用我的groovy脚本帮助我吗?提前致谢!

curl groovy asana
1个回答
0
投票

尝试使用shell添加命令,即def command="/bin/bash curl https..."

© www.soinside.com 2019 - 2024. All rights reserved.