API-интерфейс Godaddy ПОЛУЧИЛ все домены и автоматизацию печати, печатая ноль

В настоящее время пытаюсь автоматизировать GET все мои домены Godaddy, используя их API (кстати, я использую IntelliJ Ultimate). В настоящее время я получаю ответ, и кажется, что все работает нормально, за исключением случаев, когда я пытаюсь распечатать, например, все имена доменов, он просто печатает 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

Я сделал это точно так же с картами Google, где это работает так, как задумано.

ОБНОВЛЕНИЕ 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), но обв. с разной информацией.


person Kable    schedule 15.05.2018    source источник
comment
Как выглядит json из ответа GoDaddy?   -  person piy26    schedule 15.05.2018
comment
[ {domainId: КОНФИДЕНЦИАЛЬНАЯ ИНФОРМАЦИЯ, домен: КОНФИДЕНЦИАЛЬНАЯ ИНФОРМАЦИЯ, статус: АКТИВЕН, истекает: 2018-08-13T06:37:31Z, expireProtected: false, holdRegistrar: false, заблокировано: true, конфиденциальность: true, renewAuto: true, возобновление: true, transferProtected: false, createdAt: 2015-08-13T06:37:31Z }, Невозможно вставить сюда все, потому что оно слишком длинное. Однако в основном это еще 22 раза (всего 23), но обв. с разной информацией   -  person Kable    schedule 15.05.2018
comment
Добавил в исходный пост для лучшей читабельности   -  person Kable    schedule 15.05.2018
comment
@Kable Эй, я пытаюсь обрабатывать запросы cURL в Java, особенно в eclipse, знаете ли вы способ включить это? Я новичок и не имею особого опыта ни в чем, кроме Java. Я видел, что ваш вопрос был похож   -  person Asker123    schedule 02.08.2018


Ответы (1)


Я надеюсь, что это работает.

    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));
person piy26    schedule 15.05.2018
comment
Я добавил это: DocumentContext raw = com.jayway.jsonpath.JsonPath.parse(res); Домены JSONArray = raw.read($..domain); for (int i = 0; i ‹ domains.size(); i++){ System.out.println(domains.get(i)); } НО на самом деле ничего не изменилось, за исключением другой строки в терминале, которая гласит: 16:39:00.470 [main] DEBUG com.jayway.jsonpath.internal.path.CompiledPath — Оценка пути: $..['domain'] - person Kable; 15.05.2018