(字符串问题)如何使用数据字符串进行curl POST调用?

时间:2018-07-03 23:12:37

标签: jenkins groovy jenkins-pipeline groovyshell jenkins-groovy

我正在尝试使用sh命令调用curl命令,但是无论尝试如何,我都会收到“解析JSON时出错”的信息。

sh """
  curl -s -X POST \
    --url www.example.com
    --data \"{\'state\': \'failure\'}\"
  """

2 个答案:

答案 0 :(得分:0)

JSON标准要求在键值对周围加双引号。在您的示例中,看起来您在--url之后也缺少了\

尝试:

sh '''
    curl -s -X POST \
    -H \'Content-type: application/json\' \
    --url www.example.com \
    --data \'{"state": "failure"}\'
'''

如果最终需要使用字符串插值,则

sh """
    curl -s -X POST \
    -H 'Content-type: application/json' \
    --url www.example.com \
    --data '{\"state\": \"status\"}'
"""

答案 1 :(得分:0)

问题: 我认为您错误地添加了终止符。

解决方案: 只需使用此格式。应该可以。

curl -s -X POST --header "Content-Type: application/json" \
  --request POST \
  --data '{"state":"failure"}' \
  http://www.example.com