Azure DevOps 的 YAML 管道中的 Curl 命令

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

我尝试在 Azure DevOps Pipeline 中使用curl 命令调用 api 并收到以下错误

/azp/_work/_temp/xxxxxx-xx-xxxxxx-xxxx-xxxxxxxxxxxxxx.sh:第 4 行:查找匹配的“”时出现意外的 EOF /azp/_work/_temp/xxxxxx-xx-xxxxxx-xxxx-xxxxxxxxxxxxxxx.sh:第 5 行:语法错误:意外的文件结尾 ##[错误]Bash 退出,代码为“2”。

这是我尝试调用 CURL 命令的步骤

步骤:

- script: |
  echo "Sending POST Request...""
  curl -X POST "URL" \\ 
  \-H "Content-Type:  application/json" \
  \-H "Authorization: Bearer PATTOKEN"
  displayName: 'Send POST request using CURL'

我需要从 Azure DevOps Pipeline 调用 api。请帮我解决问题

curl azure-devops azure-pipelines azure-pipelines-yaml
2个回答
0
投票
- script: |
echo "Sending POST Request..."
curl -X POST "URL" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer PATTOKEN"
displayName: 'Send POST request using CURL'

上面是你的脚本应该是什么样子,你只需要一个反冲来指示行尾的继续,而不是两个


0
投票

您的任务缩进不正确,并且您的命令似乎格式不正确。

尝试以下操作:

 - script: |
     echo "Sending POST Request..."
     curl -X POST "URL" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer PATTOKEN"
   displayName: 'Send POST request using CURL'

您可以使代码更简洁,并对 YAML 多行字符串使用不同的语法来消除反斜杠

\

使用 folded 样式(由直角括号

>
表示)而不是 literal 样式(由竖线
|
表示):

 - script: >
     echo "Sending POST Request..."

     curl -X POST "URL"
     -H "Content-Type: application/json"
     -H "Authorization: Bearer PATTOKEN"
   displayName: 'Send POST request using CURL'

请注意,根据您使用折叠样式还是文字样式,换行符的处理方式有所不同。请参阅如何在 YAML 中将字符串拆分为多行?以及上面的链接以了解更多详细信息。

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