mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-10 05:01:29 -04:00
Fix(DownloadUtils): Set Read Timeout Duration (#6504)
* Fix[DownloadUtils]: Set Read Timeout Duration Pojav has not set a timeout for downloading files, which results in situations where file downloads do not throw an exception or terminate even after timing out. * Update DownloadUtils.java
This commit is contained in:
parent
42c1c98c21
commit
6eb830ba7a
@ -15,6 +15,7 @@ import org.apache.commons.io.*;
|
|||||||
@SuppressWarnings("IOStreamConstructor")
|
@SuppressWarnings("IOStreamConstructor")
|
||||||
public class DownloadUtils {
|
public class DownloadUtils {
|
||||||
public static final String USER_AGENT = Tools.APP_NAME;
|
public static final String USER_AGENT = Tools.APP_NAME;
|
||||||
|
private static final int TIME_OUT = 10000;
|
||||||
|
|
||||||
public static void download(String url, OutputStream os) throws IOException {
|
public static void download(String url, OutputStream os) throws IOException {
|
||||||
download(new URL(url), os);
|
download(new URL(url), os);
|
||||||
@ -26,7 +27,8 @@ public class DownloadUtils {
|
|||||||
// System.out.println("Connecting: " + url.toString());
|
// System.out.println("Connecting: " + url.toString());
|
||||||
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
conn.setRequestProperty("User-Agent", USER_AGENT);
|
conn.setRequestProperty("User-Agent", USER_AGENT);
|
||||||
conn.setConnectTimeout(10000);
|
conn.setConnectTimeout(TIME_OUT);
|
||||||
|
conn.setReadTimeout(TIME_OUT);
|
||||||
conn.setDoInput(true);
|
conn.setDoInput(true);
|
||||||
conn.connect();
|
conn.connect();
|
||||||
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
|
||||||
@ -67,6 +69,8 @@ public class DownloadUtils {
|
|||||||
FileUtils.ensureParentDirectory(outputFile);
|
FileUtils.ensureParentDirectory(outputFile);
|
||||||
|
|
||||||
HttpURLConnection conn = (HttpURLConnection) new URL(urlInput).openConnection();
|
HttpURLConnection conn = (HttpURLConnection) new URL(urlInput).openConnection();
|
||||||
|
conn.setConnectTimeout(TIME_OUT);
|
||||||
|
conn.setReadTimeout(TIME_OUT);
|
||||||
InputStream readStr = conn.getInputStream();
|
InputStream readStr = conn.getInputStream();
|
||||||
try (FileOutputStream fos = new FileOutputStream(outputFile)) {
|
try (FileOutputStream fos = new FileOutputStream(outputFile)) {
|
||||||
int current;
|
int current;
|
||||||
@ -81,8 +85,9 @@ public class DownloadUtils {
|
|||||||
monitor.updateProgress(overall, length);
|
monitor.updateProgress(overall, length);
|
||||||
}
|
}
|
||||||
conn.disconnect();
|
conn.disconnect();
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new IOException("Unable to download from " + urlInput, e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static <T> T downloadStringCached(String url, String cacheName, ParseCallback<T> parseCallback) throws IOException, ParseException{
|
public static <T> T downloadStringCached(String url, String cacheName, ParseCallback<T> parseCallback) throws IOException, ParseException{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user