所以这就是问题,我需要访问一个非常繁忙的网站,我只能通过一个请求访问它。
所以我想要的是使用Apache HttpClient或其他优秀的java库对同一个网址进行多次请求,并等待网站成功响应。一旦请求获得成功响应,线程中的所有其他请求都需要立即终止。
我该怎么办?如果还有其他好的图书馆可以完成任务,请告诉我。
答案 0 :(得分:1)
我的建议是使用单线程并在发生某些错误时重试。这样你就不会淹没繁忙的网站。这不会慢很多,因为如果服务器很忙,发出更多请求就不会给你带来任何好处。 如果您决定使用多个线程(使用2),则所有线程都需要共享同一个HTTP客户端:
CloseableHttpClient httpclient = createDefault();
当您收到成功回复时,您必须致电
httpclient.close();
并停止所有线程。 close()
将终止所有连接(活动和非活动)。