apache httpclient 多次执行

Multiple execution by apache httpclient

事情是这样的,我需要访问一个非常繁忙的网站,我无法仅通过一个请求访问该网站。

所以我想要的是使用 Apache HttpClient 或 java 的其他优秀库对同一网址发出多个请求,并等待该站点的成功响应。一旦请求获得成功响应,线程中的所有其他请求都需要立即终止。

我该怎么做?另外,如果有其他好的库可用于该任务,请告诉我。

我的建议是使用单线程,如果出现错误则重试。这样您就不会淹没繁忙的站点。这不会慢很多,因为如果服务器很忙,发出更多请求不会给您带来任何好处。 如果您决定使用多线程(使用 2),所有线程都需要共享同一个 HTTP 客户端:

CloseableHttpClient httpclient = createDefault();

收到成功响应后,您必须调用

 httpclient.close();

并停止所有线程。 close() 将终止所有连接(活动和非活动)。