2017-03-31 1216 views
0

我在groovy脚本中发送curl请求时遇到困难,并且正在查看是否有人可以指引我朝着正确的方向。在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

替代最简单的方法 - https://github.com/jwagenleitner/groovy-wslite – Rao

+0

我只是碰到那个......谢谢,试着我们说话:-) – Richlewis

回答

1

--data之后,我看不到任何环绕你的json(使用引号)的环绕。可能是这是一个原因。您可以尝试在您的json周围使用单引号(类似于您的其他curl命令,即--data '{...}'

有一个选项将json放入文件中,然后使用--data-binary从文件中发布。例如下面的一个。

--data-binary "@my.json" 

而且,最后,当然你可以使用任何类似curl的东西(或库)。我对groovy了解不多。