设置java.net.URLConnection的最大超时
我想下载pdf文件,但源url太慢。因此,我用下面的代码给出连接超时异常设置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
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秒是不正常的,但我想下载文件需要多长时间。-连接和读取超时值与文件下载时间无关。连接超时发生在建立连接之前,早在文件开始下载之前。一旦建立了连接,连接超时值就没有意义了。抱歉误解了,它所花费的时间意味着连接和读取的总时间。