pdfファイルをダウンロードしたいが、ソースurlが遅すぎる。このため、次のコードで接続タイムアウト例外を指定しています。java.net.URLConnectionの最大タイムアウトを設定する
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秒を超える接続は異常ですが、ファイルのダウンロードにはどれくらい時間がかかるのですか。
このタイムアウト値を増やすにはどうすればよいですか?
_「15秒を超える接続に異常がありますが、ファイルのダウンロードに時間がかかります」_ _接続のタイムアウト値と読み取りタイムアウト値は、ファイルのダウンロード時間。接続タイムアウトは、ファイルがダウンロードされるずっと前に接続が確立される前に発生します。接続が確立されると、接続タイムアウト値は意味を持ちません。 –
誤解をおかけして申し訳ありませんが、「どのくらいの時間がかかりますか」とは、接続と読み取りの合計時間を意味します。 –