В основном я пытаюсь загрузить HTML-контент веб-страницы.Метод очень прост
HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
BufferReader in = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
String line;
StringBuilder pageBuilder = new StringBuilder();
while ((line = in.readLine()) != null) {
pageBuilder.append(line + "\n");
}
Но иногда программа просто зависает.Я попытался отладить, и трассировка стека потоков говорит мне, что он зависает при вызове метода SocketRead0.Я попытался установить readtimeout для соединения, но оно не работает.Любые идеи о том, как я могу обнаружить и пройти через блок SocketRead0?
Редактировать: Кажется, что у меня на самом деле проблема в том, что getReponseCode неявно вызывает некоторые методы getInputStream и некоторые read () и затем зависает в readSocket0).Могу ли я в любом случае убедиться, что вызов getReponseCode () будет безопасным?Вот трассировка стека одного потока: Уровень 0 - самый последний вызов
thread 24stacktrace
At 0level
at method socketRead0
at line -2
At 1level
at method read
at line 129
At 2level
at method fill
at line 218
At 3level
at method read1
at line 258
At 4level
at method read
at line 317
At 5level
at method parseHTTPHeader
at line 687
At 6level
at method parseHTTP
at line 632
At 7level
at method getInputStream
at line 1200
At 8level
at method getResponseCode
at line 379
At 9level
at method pushFinalRedirectedURL
at line 132
At 10level
at method process
at line 134
At 11level
at method run
at line 40