目前尝试使用他们的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
我已经完成了谷歌地图的完全相同的方式,它的工作方式非常有用。
以下是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。有不同的信息。
答案 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));