用于进行REST调用的Gradle脚本(POST,GET)

时间:2015-06-08 21:57:34

标签: java rest groovy gradle build

我第一次尝试gradle

我想在gradle脚本中调用一些REST API并验证我收到的一些响应。

当前系统配置包括在Java 1.7上运行的Gradle 2.4Oracle Linux 6.5

我的REST API

API => POST localhost / Assign

JSON输入:

{"user":"dummyuser"}

JSON输出:

{
  "jobMessageDetails": "dummyuser has been assigned to dummymachine",
  "jobStatusDetails": "Success",
  "jobType": "assign",
  "machineName": "dummymachine",
  "time": "2015/6/8 @ 14:47:42",
  "userName": "dummyuser"
}

我可以使用其他计算机上的APIs来测试我的POSTMAN。我这样做:POST hostname??:5500/Assign JSON_INPUT使用POSTMAN。它们正常工作。

我想做什么:

  • 我想从API脚本中调用此Gradle
  • 我想解析收到的JSON_OUTPUT。
  • 我想阅读并打印"jobStatusDetails"&我收到的回复"machineName"

PS:我是Gradle的新手,我很感谢完整的代码

我查看了以下链接 - link1 link2。他们都没有帮助我。

1 个答案:

答案 0 :(得分:1)

您可以使用URLConnection API。

发布方法示例:

task demo {
    doLast {
        def body = [user: "dummyUser"]
        def req = new URL('https://hostname/Assign').openConnection()
        req.setRequestMethod("POST")
        req.setRequestProperty("Content-Type", "application/json; charset=UTF-8")
        req.setDoOutput(true)
        req.getOutputStream().write(JsonOutput.toJson(body).getBytes("UTF-8"))
        logger.quiet "Status code: ${req.getResponseCode()}" // HTTP request done on first read
        def resp = new JsonSlurper().parseText(req.getInputStream().getText())
        logger.quiet "Response: ${resp}"
    }
}

要进行解析,您可以使用JsonSlurper