3

我正在用 Java 编写一些代码来从 url 下载东西,在我的配置中,一些下载应该由代理处理,而其他的则没有它。

所以我写了这段代码(它有效)来下载所有 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
    }
}

现在大约需要。抛出异常前10 秒,我想将此时间减少到最多 2 秒或 3 秒。

我能得到一些帮助吗?谢谢 !

4

1 回答 1

5

您可以像这样设置超时:

long connectTimeout = 3000;
URL global_url = new URL(urlPath);
URLConnection con = global_url.openConnection();
con.setConnectTimeout(connectTimeout);

其中 connectTimeout 可以设置为毫秒。由于您需要 3 秒超时,因此将其设置为 3000。

于 2013-07-09T14:34:43.343 回答