如何从ClientBuilder访问获取请求的响应

时间:2018-11-30 14:05:54

标签: java api get

我正在使用ClientBuilder从API异步执行多个GET请求。

private static Future<Response> getElevation(Coordinate coordinate) {
    double latatude = coordinate.getLatatude();
    double longatude = coordinate.getLongatude();
    String url = "https://api.open-elevation.com/api/v1/lookup?locations=" + latatude + "%2C%20" + longatude;
    System.out.println("URL : " + url);
    return ClientBuilder.newClient().target(url).request().async().get();
}

我调用上述方法,然后等待直到使用命令...完成请求为止。

.isDone()

类型为Future <,Response>的对象上。但是,我不知道如何从中得到实际的响应。我知道它应该是这样的形式;

{"results": [{"latitude": 53.95798659954082, "elevation": 0, "longitude": -4.306156617942942}]} 

我有.getResult.toString()和.toString()。但是看不到还有什么。

提前谢谢!

1 个答案:

答案 0 :(得分:0)

您必须在返回的get()对象上调用Future<Response>

get()
Waits if necessary for the computation to complete, and then retrieves its result.

请参见Future<V>界面的文档。