如何使用 BufferedReader 同步读取 http headers?

How to read http headers synchronously using BufferedReader?

我的问题是 BufferedReader#read() 会产生无限延迟,直到连接终止。一旦中断,BufferedReader 立即产生结果。因此,由于这些延迟,我无法读取与页面加载同步的 headers。

BufferedReader 不是解决方案,顾名思义,它 缓冲 ​​ 数据 N 字节或直到流结束(当套接字时已关闭)"for the efficient reading of characters, arrays, and lines." 如果您的 BufferedReader 只是 socket.getInputStream(),则使用它。

int b = -1;
while ((b = socket.getInputStream().read()) != 1) {
    System.out.print((char)b);
}