我目前正在使用 HTTPClient 4 像这样向远程服务器发出 POST 请求:
HttpResponse response = httpClient.execute( request );
InputStream is = response.getEntity().getContent();
当服务器不可访问时,在连接实际超时之前需要一段自行配置的时间。在此期间,execute() 是一个阻塞调用。
我正在寻找的是一种在自然超时之前取消 execute() 的方法,这样我运行 execute() 的线程就不会再被阻塞,并且会正常完成。
我试过了
request.abort();
和
httpClient.getConnectionManager().shutdown();
但是这两个调用都不会中断 execute()。有没有其他方法可以取消正在进行的连接尝试?
最佳答案
将调用包装在 Future 中并调用 get with timeout .
关于java - 在达到超时之前关闭 HttpClient 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669948/