0

我正在为集合请求触发 Zomato api,但是,我一直在获取标题,就好像它们是 text/html 一样。Postman 将它们作为 JSON 返回,这正是我所需要的。到目前为止,我测试过的所有其他 Zomato api 都返回 JSON,但知道为什么。这就是我试图强制 JSON 作为响应类型的原因。

@Test
public void testGetCousinesApiReturnsItemsInAscendingAlphabeticalOrder() {

    Map<String, Object> map = new HashMap<>();
    map.put("city_id", 61);

    Response r = given()
            .baseUri(baseUrl)
            .basePath("/cousines")
            .queryParams(map)
            .contentType(ContentType.JSON)
            .accept(ContentType.JSON)
            .contentType("application/json\r\n")
            .header("Accept", "application/json").and()
            .header("Content-Type", "application/json")
            .header("user-key", zomatoKey)
            .log().body(false)
            .get();

    System.out.println(r.getContentType());
}
4

1 回答 1

0

我将响应转换为 JsonPath :

 public static JsonPath getJsonPath (Response res) {
        String json = res.asString();
        System.out.println("returned json: " + json);
        return new JsonPath(json);
    }

然后使用这个 JsonPath 来获取 Response 的每个值:

JsonPath jp = getJsonPath(res);
String type = jp.get("type");
于 2020-02-20T19:40:50.720 回答