有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

引发ConnectException之前的异常Java延迟

我正在用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秒

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


共 (1) 个答案

  1. # 1 楼答案

    您可以按如下方式设置超时:

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

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