我有一个javaservlet向其他服务器请求一些请求,而另一台服务器有一个默认超时为2分钟的apache服务器。
我有两个url要调用,以防第一个url失败,然后我需要调用第二个url,但实际情况是第一个url需要2分钟的默认超时时间。但我不要求它像这样超时,比如说10秒后,如果结果还没有得到,那么我需要调用第二个url
URL urlConnect = new URL(url.toString());
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection urlc = (HttpURLConnection) urlConnect.openConnection();
urlc.setConnectTimeout(1000*20);
urlc.connect();
只捕获SocketTimeoutException:
try{
boolean timeout = false;
URL urlConnect = new URL(url.toString());
HttpURLConnection.setFollowRedirects(false);
HttpURLConnection urlc = (HttpURLConnection) urlConnect.openConnection();
urlc.setConnectTimeout(10000); // 10 sec
urlc.setReadTimeout(10000); // 10 sec
urlc.connect();
}catch(SocketTimeoutException e){
timeout = true;
}finally{
if(timeout){
handleSecoundRequestFunction(); //the same principle as by first connection
}
}