设置java.net.URLConnection

时间:2017-11-04 05:56:14

标签: java download httpurlconnection connection-timeout

我想下载pdf文件,但源网址太慢了。因此,我使用以下代码给出了连接超时异常。

    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值返回值,我的设置。

此外,我尝试使用apache库将输入流复制到目标,但我再次收到连接超时异常。

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

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

1 个答案:

答案 0 :(得分:1)

您不能将连接超时增加到超出平台默认值(与Javadoc的20年相反),并且没有必要这样做。它与下载时间无关。唯一相关的超时是读取超时。

在任何情况下,如果“来源网址太慢”,只是设置超时不会让它更快。