我在Groovy脚本中发送curl请求时遇到了困难。
我一直收到无效的有效负载和全局错误。如果我在终端内执行以下操作,则可以正常使用
curl -X POST -H 'Content-type: application/json' --data '{"attachments": [{"color": "#2A9B3A", "author_name": "Richard Lewis", "title": "MY Build Status", "title_link": "http://example.co.uk", "text": "Successful Build" }]}' https://hooks.slack.com/services/webhook
但是当我尝试在我的Groovy脚本中执行此操作时,它失败了
sh """#!/bin/bash -l
curl -X POST -H 'Content-type: application/json' --data {"attachments": [{"color": "#2A9B3A", "author_name": "Richard Lewis", "title": "My Build Status", "title_link": "http://example.co.uk", "text": "Successful Build" }]} "https://hooks.slack.com/services/T122JHEUW/webhook"
"""
如何正确格式化或者是否有更好的方式发送此请求?如果我可以将--data
保存在一个变量中以传递给我的请求我会更清楚,但我也遇到了问题(有效负载错误),我想再次格式化了。
答案 0 :(得分:1)
在--data
之后,我看不到你的json周围有任何包裹(使用引号)。可能这是一个原因。您可以尝试在json周围使用单引号(类似于您的其他curl命令,即--data '{...}'
)
有一个选项将json用于文件,然后使用--data-binary
从文件发布。例如下面的一个。
--data-binary "@my.json"
最后,当然你可以使用任何做类似卷曲的groovy客户端(或库)。我对groovy不太了解。