2017-04-18 6 views
1

データが必要なREST APIが1つあります。Groovy経由でJSONを使ってPOSTリクエストを行う方法は?

curl -X "POST" "https://xxx.xxx.xxx/xapplication/xwebhook/xxxx-xxxx" -d "Hello, This is data" 

対応するGroovyスクリプトは次のようになります。

+0

あなたは何を試してみましたか? –

+0

スレッドに続く私の問題を解決しましたhttp://stackoverflow.com/questions/25692515/groovy-built-in-rest-http-client – Anveshak

答えて

3

シンプルGETのためにあなたは、プレーンのGroovyを使用することができますが:

'https://xxx.xxx.xxx/xapplication/xwebhook/xxxx-xxxx'.toURL().text 

しかし、それはあなたに多くの柔軟性(別のHTTP動詞、コンテンツタイプの交渉...など)を与えるものではありません。代わりに、私はHttpBuilder-NGを使用します。これは非常に完全なライブラリであり、Groovyの構文を念頭に置いて構築されています。

作業JSONの例については、以下がPOSTリクエストでJSONの体を送信し、一筆マップとして利用できるようになります応答を、バック解析します

@Grab('io.github.http-builder-ng:http-builder-ng-okhttp:0.14.2') 
import static groovy.json.JsonOutput.toJson 
import static groovyx.net.http.HttpBuilder.configure 

def posts = configure { 
    request.uri = 'https://jsonplaceholder.typicode.com' 
    request.uri.path = '/posts' 
    request.contentType = 'application/json' 
    request.body = toJson(title: 'food', body: 'bar', userId: 1) 
}.post() 

assert posts.title == 'foo' 
関連する問題