gpt4 book ai didi

java - 如何使用 Unirest 等待所有异步 REST 调用完成?

转载 作者:搜寻专家 更新时间:2023-11-01 03:36:44 25 4
gpt4 key购买 nike

作为异步编程的新手,我想知道如何等待所有 futures 完成?

在我当前的用例中,我必须读取文件并使用 JSON post 将内容逐行发布到 REST Web 服务。但是当我以正常方式执行此操作时,程序会在所有 Futures 完成之前就存在。

下面是程序的一些代码。

while ((line = br.readLine()) != null) {
Future<HttpResponse<String>> future = Unirest.post("http://www.dummy.net")
.fields(map)
.asStringAsync(new Callback<String>() {
public void completed(HttpResponse<String> response) {
int code = response.getStatus();
}

public void failed(UnirestException e) {
System.out.println("The request has failed");
}

public void cancelled() {
System.out.println("The request has been cancelled");
}
}
);
}

此代码在所有 Futures 完成之前运行并存在。关于如何等待所有 future 完成的任何提示?

最佳答案

将所有这些 Futures 收集起来,例如数组列表。并把它们全部拿走。

List<Future> futures = ...
// your while loop

foreach(Future f : futures) f.get();

关于java - 如何使用 Unirest 等待所有异步 REST 调用完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com