簡體   English   中英

設置java.net.URLConnection的最大超時

[英]Setting maximum timeout of java.net.URLConnection

我想下載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;
        }

我試圖通過轉換為毫秒來更改0和5分鍾的setConnectTimeout和setReadTimeout值,但是在〜130秒之后,它引發了連接超時異常。 我無法更改此值。 設置讀取和連接超時后,getConnectionTimeout和getReadTimeout值返回值,我的設置。

我也嘗試了apache庫將輸入流復制到目的地,但是我又收到了連接超時異常。

我已經知道,大於15秒的連接異常,但是我想下載文件需要多長時間。

那么,如何增加這個超時值呢?

您不能將連接超時增加到平台默認值以上(與Javadoc的20年相反),這樣做是沒有意義的。 它與下載時間無關。 唯一相關的超時是讀取超時。

無論如何,如果“源URL太慢”,則僅設置超時不會使它更快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM