我的 apache HTTP 客户端正在从向我们发送 HTTP 流(以分块数据的形式)的服务器读取数据。
我有一个输入流和缓冲读取器来获取数据,并使用缓冲数据 readLine 方法读取这些数据。
InputStream inputStream = httpEntity.getContent();
br= new BufferedReader(new InputStreamReader(inputStream));
while ((line = br.readLine()) != null)
如果我从服务器收到错误的响应,我想关闭连接。
为此,我每隔一段时间创建一个 timertask 以关闭我的连接。每次收到响应时,我都会解析响应以检查响应是否正确,如果响应正确,则重置 timetask。如果我在这种情况下发现错误的响应,我不会重置 timertask(并让 timertask 执行到之前设置的时间)
我想知道使用无缓冲 I/O 是否有帮助?还是我需要其他方法?
我看到的问题是由于连接打开,我的 timertask 无法关闭连接。inputStream.close 或 bufferReader.close 都无法执行(似乎无限等待)