HTTP Header 的 InputStream 不终止

InputStream for HTTP Header does not terminate

我正在尝试使用输入流从客户端读取 http header,但它似乎没有终止。不知道这样读请求有没有问题。我希望它适用于 GET 和 POST 请求。这是我的代码

private static byte[] readClientRequest(byte[] clientRequest, InputStream fromClient) throws IOException{
    int bytesRead;
    ByteArrayOutputStream clientByteArray = new ByteArrayOutputStream();
    while((bytesRead = fromClient.read()) != -1) {
        clientByteArray.write(bytesRead);
    }
    clientByteArray.flush();
    clientRequest = clientByteArray.toByteArray();
    return clientRequest;
}

非常感谢。

一般网络socket是不知道末端在哪里的。它可能是特定于应用程序协议的。对于 HTTP,您可以读取一个 header 行直到行尾 (bytesRead != '\n')。然后你应该使用 available 方法来检查是否有下一部分数据。