gpt4 book ai didi

java - 在 Java 中同时发出 Web 请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:57:28 26 4
gpt4 key购买 nike

有人可以指点我进行并行网络请求的代码片段吗?我需要发出 6 个 Web 请求并连接 HTML 结果。

是否有快速的方法来完成此操作,还是我必须采用线程方式?

谢谢。

最佳答案

使用 ExecutorService Callable<InputStream> .

启动示例:

ExecutorService executor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors());
Future<InputStream> response1 = executor.submit(new Request("http://google.com"));
Future<InputStream> response2 = executor.submit(new Request("http://stackoverflow.com"));
// ...
ByteArrayOutputStream totalResponse = new ByteArrayOutputStream();
copyAndCloseInput(response1.get(), totalResponse);
copyAndCloseInput(response2.get(), totalResponse);
// ...
executor.shutdown();

public class Request implements Callable<InputStream> {

private String url;

public Request(String url) {
this.url = url;
}

@Override
public InputStream call() throws Exception {
return new URL(url).openStream();
}

}

另见:

关于java - 在 Java 中同时发出 Web 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4524063/

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