我正在使用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()。但是看不到还有什么。
提前谢谢!
答案 0 :(得分:0)
您必须在返回的get()
对象上调用Future<Response>
:
get()
Waits if necessary for the computation to complete, and then retrieves its result.
请参见Future<V>
界面的文档。