我有一个REST API,它需要数据。我们使用以下curl命令发送数据和标题信息:
curl -X "POST" "https://xxx.xxx.xxx/xapplication/xwebhook/xxxx-xxxx" -d "Hello, This is data"
什么是等效的Groovy脚本?
答案 0 :(得分: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'