Я использую HttpURLConnection
на стороне клиента, чтобы получить ответ в ситуации потоковой передачи HTTP (push-уведомления сервера). . Хотя сервер может закрыть соединение, закрыв ответ, клиент также должен иметь возможность сделать это.
Клиент обрабатывает InputStream
в отдельном потоке, например:
@Override
public void run() {
try {
for (int b = in.read(); b >= 0; b = in.read()) {
char c = (char) b;
// Do something with the character
// ...
}
}
catch (IOException e) {
}
}
Итак, когда я вызываю HttpURLConnection.disconnect ()
из потока, который инициировал соединение (важная часть информации заключается в том, что это другой поток, чем тот, который обрабатывает ввод), этот вызов зависает на неопределенное время. Я даже оставил его на ночь, а он все еще висел. Даже вызов Thread.interrupt ()
не помог.
Есть предложения?