【发布时间】:2020-11-19 17:24:46
【问题描述】:
我正在尝试从 gitlab-ci.yml 文件调用 API。我正在尝试确定错误消息是否过早中断,或者 curl 命令是否未正确从脚本中读取变量。
leapwork:
stage: leapwork
tags:
- docker
script:
- echo "Run the Schedule"
- echo "$LEAPWORK_URL"
- echo "$LW_SCHEDULE_ID"
- echo "$LW_RUNNOW"
- echo "$LEAPWORK_ACCESS_KEY"
- partial_url=${LEAPWORK_URL}${LW_SCHEDULE_ID}${LW_RUNNOW}?api_key\=${LEAPWORK_ACCESS_KEY}
- headerAccess="--header 'AccessKey:${LEAPWORK_ACCESS_KEY}'"
- headerJSON="--header 'Accept:application/json'"
- curlString="${headerJSON} ${headerAccess} '${partial_url}'"
- echo "passed the assignment"
- echo ${partial_url}
- echo $headerAccess
- echo $headerJSON
- echo $curlString
- run_id=$(`curl -s -S -X GET ${curlString}`)
这是生成的输出
$ echo "Run the Schedule"
Run the Schedule
$ echo "$LEAPWORK_URL"
http://xxx.xxx.xx.xxx:xxx/api/v4
$ echo "$LW_SCHEDULE_ID"
_disguised_parameter_
$ echo "$LW_RUNNOW"
/runNow
$ echo "$LEAPWORK_ACCESS_KEY"
_api_key_
$ partial_url=${LEAPWORK_URL}${LW_SCHEDULE_ID}${LW_RUNNOW}?api_key\=${LEAPWORK_ACCESS_KEY}
$ headerAccess="--header 'AccessKey:${LEAPWORK_ACCESS_KEY}'"
$ headerJSON="--header 'Accept:application/json'"
$ curlString="${headerJSON} ${headerAccess} '${partial_url}'"
$ echo "passed the assignment"
passed the assignment
$ echo ${partial_url}
http://xxx.xxx.xx.xxx:xxx/api/v4/disguised_parameter/runNow?api_key=_api_key_
$ echo $headerAccess
--header 'AccessKey:_api_key_'
$ echo $headerJSON
--header 'Accept:application/json'
$ echo $curlString
--header 'Accept:application/json' --header 'AccessKey:_api_key_' 'http://xxx.xxx.xx.xxx:xxx/api/v4/_disguised_parameter_/runNow?api_key=_api_key_'
$ run_id=$(`curl -s -S -X GET ${curlString}`)
curl: (6) Could not resolve host: 'http
对 curl 的错误消息有任何输入吗?可能是 curl 获得了带有参数的完整服务器地址,但它只是在错误消息中被切断了,还是 API 的地址被切断了?
感谢您的任何建议
【问题讨论】:
-
在执行命令
run_id=$(`curl -s -S -X GET ${curlString}`)时,尝试去掉反引号。我认为这会导致意外行为。要捕获命令的输出,它应该是run_id=$(curl -s -S -X GET ${curlString}) -
感谢您的建议。不幸的是,结果是一样的。