小编cr0*_*078的帖子

Java发送多个HTTP请求的最佳方式

我有一个 Java 程序,它使用 Java 11 HttpClient 向服务器发送数百个 GET 请求,并且每分钟需要执行 2-3 次。目前,它执行以下操作(仅描述逻辑):

for each request that needs to be sent:

    //build GET request
    CompletableFuture<HttpResponse<String>> future = client.sendAsync(request, HttpResponse.BodyHandlers.ofString());
    futures.add(future)
    // for every 100 request, sleep for 2500 milliseconds (to wait for responses)

for each future in futures:
    // parse JSON response
Run Code Online (Sandbox Code Playgroud)

代码大部分工作正常,但是,它受到互联网连接强度的严重影响,就好像它很糟糕一样,80% 的请求没有得到响应,因为等待时间不够。

问题是这是否是正确的方法,如果不是,那会是什么。另外,我是否应该等待所有请求得到响应(例如同步发送请求并使用 .join()),如果是,我该怎么做。

java asynchronous get http connectivity

1
推荐指数
1
解决办法
7060
查看次数

标签 统计

asynchronous ×1

connectivity ×1

get ×1

http ×1

java ×1