关于java:apache httpclient多次执行

Multiple execution by apache httpclient

所以事情是这样的,我需要访问一个非常繁忙的站点,而我只需要一个请求就无法访问。

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

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


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

1
CloseableHttpClient httpclient = createDefault();

当您收到成功的回复时,您必须致电

1
 httpclient.close();

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