Godaddy API获取所有域和打印自动化,打印无效

时间:2018-05-15 10:02:07

标签: java godaddy-api

目前尝试使用他们的API(BTW我正在使用IntelliJ终极版)自动化所有Godaddy域名。我正在得到一个响应,似乎一切都运行正常,除了当我尝试打印出例如域的所有名称时,它只打印出来" Null"。以下是我的代码:

public class GoDaddyGET {


    Properties prop = new Properties();


    public void getData() throws IOException {

        FileInputStream fis = new FileInputStream("C:\\Users\\nerdi\\FableMedia\\src\\main\\java\\files\\env.properties");
        prop.load(fis);

        //prop.getProperty("HOST");
    }


    public void Test(){

        // write your code here

        //BaseURL or Host
        RestAssured.baseURI = prop.getProperty("GODADDYHOST");

        Response res = given().
                header("Authorization", prop.getProperty("GODADDYKEY")).log().all().
                header("Content-Type", "application/json").
                header("Accept", "application/json").
                param("includes", "contacts").
                when().
                get(Resources.godaddyGetData()).
                then().assertThat().statusCode(200).
                and().
                contentType(ContentType.JSON).
                and().
                body("array[0].domain",equalTo("SENSITIVE INFORMATION")).
                and().
                body("array[0].domainId",equalTo("SENSITIVE INFORMATION")).
                and().
                header("Server", "SENSITIVE INFORMATION").log().body().

                extract().response();


        JsonPath js = ReusableMethods.rawToJson(res);

        int count = js.get("array.size()");

        for (int i = 0; i < count; i++){
            String name = js.get("array["+i+"].domain");
            System.out.println(name);
        }
        System.out.println(count);

    }
}

以下是我的终端输出:

Request method: GET
Request URI:    https://api.godaddy.com/v1/domains?includes=contacts
Proxy:          <none>
Request params: includes=contacts
Query params:   <none>
Form params:    <none>
Path params:    <none>
Headers:        Authorization=sso-key APIKEY:APISECRET
                Accept=application/json
                Content-Type=application/json; charset=UTF-8
Cookies:        <none>
Multiparts:     <none>
Body:           <none>
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
23

===============================================
Default Suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================


Process finished with exit code 0

我已经完成了谷歌地图的完全相同的方式,它的工作方式非常有用。

更新1

以下是Json回复的一部分:

[ { "domainId": SENSITIVE INFORMATION, "domain": "SENSITIVE INFORMATION", "status": "ACTIVE", "expires": "2018-08-13T06:37:31Z", "expirationProtected": false, "holdRegistrar": false, "locked": true, "privacy": true, "renewAuto": true, "renewable": true, "transferProtected": false, "createdAt": "2015-08-13T06:37:31Z" }, 

不能粘贴整个东西,因为它太长了。然而它基本上这22次(总共23次),但是obv。有不同的信息。

1 个答案:

答案 0 :(得分:0)

我希望这有效。

    DocumentContext js = JsonPath.parse(res);
    JSONArray domains = js.read("$..domain");
    for(int i = 0; i < domains.size(); i++)
        System.out.println(domains.get(i)); 

获取原始响应对象res并创建DocumentContext

DocumentContext js = JsonPath.parse(res);

阅读JSONArray中的所有域

JSONArray domains = js.read("$..domain");

然后迭代

for(int i = 0; i < domains.size(); i++)
    System.out.println(domains.get(i));