设置java.net.URLConnection的最大超时

设置java.net.URLConnection的最大超时,java,download,httpurlconnection,connection-timeout,Java,Download,Httpurlconnection,Connection Timeout,我想下载pdf文件,但源url太慢。因此,我用下面的代码给出连接超时异常 try { URL url = new URL(source); HttpURLConnection huc = (HttpURLConnection) url.openConnection(); huc.setConnectTimeout(0); //for unlimited huc.set

我想下载pdf文件,但源url太慢。因此,我用下面的代码给出连接超时异常

    try {
            URL url = new URL(source);
            HttpURLConnection huc = (HttpURLConnection) 
            url.openConnection();
            huc.setConnectTimeout(0); //for unlimited
            huc.setReadTimeout(0);
            try (InputStream in = huc.getInputStream()) {
                Files.copy(in, Paths.get(destination), StandardCopyOption.REPLACE_EXISTING);
            }
        } catch (IOException e) {
            LOGGER.info("Error occured while copying file, %s", e);
            return false;
        }
我试图通过转换为毫秒来更改setConnectTimeout和setReadTimeout的值0和5分钟,但在~130秒之后,它会引发连接超时异常。我无法更改此值。设置读取和连接超时后,getConnectionTimeout和getReadTimeout值返回值my set

我还尝试了apache库将输入流复制到目标,但再次收到连接超时异常

我已经知道,连接大于15秒是不正常的,但我想下载文件需要多长时间


那么,如何增加这个超时值呢?

您不能将连接超时增加到超过平台默认值的程度,这与Javadoc 20年的使用不同,而且这样做没有任何意义。它与下载时间无关。唯一相关的超时是读取超时


在任何情况下,如果“源URL太慢”,仅仅设置超时都不会使其更快。

我已经知道,连接超过15秒是不正常的,但我想下载文件需要多长时间。-连接和读取超时值与文件下载时间无关。连接超时发生在建立连接之前,早在文件开始下载之前。一旦建立了连接,连接超时值就没有意义了。抱歉误解了,它所花费的时间意味着连接和读取的总时间。