Мой HTTP-клиент apache считывает данные с сервера, который отправляет нам потоковую передачу HTTP (в виде фрагментированных данных).
У меня есть входной поток и Buffered Reader для получения данных, и чтение этих данных с использованием метода readLine Buffered Data.
InputStream inputStream = httpEntity.getContent();
br= new BufferedReader(new InputStreamReader(inputStream));
while ((line = br.readLine()) != null)
Я хочу закрыть соединение, если получаю неправильный ответ от сервера.
Для этого я создаю таймерную задачу через интервал времени, чтобы закрыть мое соединение.
Я анализирую ответ каждый раз, когда получаю его, чтобы проверить правильность ответа, если ответ правильный, то я сбрасываю временную задачу. Если я нахожу неправильный ответ в этом случае, я не сбрасываю таймерную задачу (и не позволяю таймерной задаче выполнить время, на которое она была ранее установлена)
Я хочу знать, может ли помочь использование небуферизованного ввода-вывода? или мне нужен какой-то другой подход?
Проблема, которую я вижу, так как соединение открыто, моя таймерная задача не может закрыть соединение. inputStream.close или bufferReader.close не способны выполнить оба (кажется, что они бесконечно ждут)