我目前正在使用HTTPClient 4向远程服务器发出POST请求,如下所示:
HttpResponse response = httpClient.execute( request );
InputStream is = response.getEntity().getContent();
当服务器无法访问时,在连接实际超时之前需要一段自我配置的时间。在那个periode期间,execute()是一个阻塞调用。
我正在寻找的是一种在自然超时之前取消execute()的方法,这样我运行execute()的线程就不再被阻塞,并且会正常完成。
我试过了
request.abort();
和
httpClient.getConnectionManager().shutdown();
但这两个调用都不会中断execute()。有没有其他方法可以取消正在进行的连接尝试?
答案 0 :(得分:1)
将来电换入Future并调用get with timeout。
答案 1 :(得分:0)
我认为你可以使用这些方法为你想要的最长时间设置connectionTimeout:setConnectionTimeout()
setSoTimeout()