2017-03-31 1221 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瞭解不多。