通过get请求获取json并将响应保存在文件中

时间:2016-09-04 08:58:14

标签: gradle groovy

我需要在gradle任务中完成三件事:

1)通过get request

接收json

2)解析它

3)将其保存在文件中

对于第一部分,我尝试使用此gradle plugin。我必须像下面这样放置标题,但它不起作用。我理解在插件的github自述文件中给出的示例中,标题没有引号,但没有它们,任务也不会执行正确。

task attack(type: org._10ne.gradle.rest.RestTask) {
    httpMethod = 'get'
    uri = 'https://www.kcell.kz/ru/roaming/countries'
    contentType = groovyx.net.http.ContentType.JSON
    requestHeaders = ["x-client-token": 'ios']
    responseHandler = {
        println "hello";
    }
}

对于第二个,我将使用JsonSlurper。内部responseHandler我做new JsonSlurper().parseText(response.text))不是,但我不知道我在哪里可以找到变量是什么"响应"如果该对象具有" text"。你能指点一下文件吗?我是gradle插件的新手 对于第三点,是否有插件或者可以通过直接在任务中编写groovy脚本来完成?

2 个答案:

答案 0 :(得分:2)

不需要插件,Groovy拥有您所需要的一切。

([ \t])([A-Za-z]([A-Za-z]*[\.-])*[A-Za-z\.]*)([,:\s])

答案 1 :(得分:0)

鉴于以下变化:

  • 将任务重命名为go
  • 更改了测试网址
  • 删除了ios请求标头

这是一种方法(responseHandler接收解析的JSON映射):

buildscript {
  repositories {
    maven {
      url "https://plugins.gradle.org/m2/"
    }
  }
  dependencies {
    classpath "org._10ne.gradle:rest-gradle-plugin:0.4.2"
  }
}

apply plugin: "org.tenne.rest"

import org._10ne.gradle.rest.*
import groovy.json.*

task go(type: RestTask) {
    httpMethod = 'get'
    uri = "http://jsonplaceholder.typicode.com/posts/1"
    contentType = groovyx.net.http.ContentType.JSON
    responseHandler = { map ->
        def jsonBuilder = new JsonBuilder(map)
        new File("example.json").withWriter { writer ->
            writer.write(jsonBuilder.toString())
        }
    }
}