import java.io.*;
import java.net.URL;
-import java.net.URLConnection;
import java.util.Locale;
import java.util.concurrent.Future;
import java.util.jar.JarFile;
});
}
+ @Nullable
private static String guessEncoding(URL url) {
- String result = null;
- BufferedReader reader = null;
- try {
- URLConnection connection = url.openConnection();
- result = connection.getContentEncoding();
- if (result != null) return result;
- //noinspection IOResourceOpenedButNotSafelyClosed
- reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
- for (String htmlLine = reader.readLine(); htmlLine != null; htmlLine = reader.readLine()) {
- result = parseContentEncoding(htmlLine);
- if (result != null) {
- break;
- }
- }
- }
- catch (IOException ignored) {
- }
- finally {
- if (reader != null) {
+ return HttpRequests.request(url.toExternalForm()).connect(new HttpRequests.RequestProcessor<String>() {
+ @Override
+ public String process(@NotNull HttpRequests.Request request) throws IOException {
+ String result = request.getConnection().getContentEncoding();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
try {
- reader.close();
+ for (String htmlLine = reader.readLine(); htmlLine != null; htmlLine = reader.readLine()) {
+ result = parseContentEncoding(htmlLine);
+ if (result != null) {
+ break;
+ }
+ }
}
- catch (IOException ignored) {
+ finally {
+ reader.close();
}
+ return result;
}
- }
- return result;
+ }, null, null);
}
@Nullable
if (!htmlLine.contains("charset")) {
return null;
}
- final Matcher matcher = CHARSET_META_PATTERN.matcher(htmlLine);
- if (matcher.find()) {
- return matcher.group(1);
- }
- return null;
+
+ Matcher matcher = CHARSET_META_PATTERN.matcher(htmlLine);
+ return matcher.find() ? matcher.group(1) : null;
}
private static void appendLine(StringBuilder buffer, final String read) {