我正在用Java编写一些代码来从网址下载内容,在我的配置中,一些代码应该由代理处理,而其他代理则不需要处理。
所以我编写了这个代码(它可以工作)来下载所有的URL类型,但是我想减少抛出ConnectException之前的延迟时间,这样代码可以更快地执行。
URL global_url = new URL("http://google.com");
Scanner sc = null;
try {
sc = new Scanner(global_url.openStream());
}
catch (ConnectException e) {
try {
System.setProperty("http.proxyHost", "my.host");
System.setProperty("http.proxyPort", "my.port");
sc = new Scanner(global_url.openStream());
System.setProperty("http.proxyHost", "");
System.setProperty("http.proxyPort", "");
}
catch (ConnectException exc) {
//Do stuff
}
}
现在需要约。抛出异常之前 10s ,我想将此时间减少到最多2s或3s
我能得到一些帮助吗? 谢谢!
答案 0 :(得分:5)
您可以像这样设置超时:
long connectTimeout = 3000;
URL global_url = new URL(urlPath);
URLConnection con = global_url.openConnection();
con.setConnectTimeout(connectTimeout);
其中connectTimeout可以设置为毫秒。因为你需要3s超时所以设置为3000。