HTTP标头的InputStream不会终止

时间:2015-09-23 01:42:38

标签: java inputstream

我正在尝试使用输入流从客户端读取http标头,但它似乎没有终止。我想知道以这种方式阅读请求是否有任何问题。我希望这可以在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;
}

非常感谢。

1 个答案:

答案 0 :(得分:0)

一般情况下,网络套接字不知道结束的位置。它可能是应用程序协议特定的。对于HTTP,您可以读取一个标题行,直到行结束(bytesRead!=' \ n')。然后,您应该使用available方法检查是否存在下一部分数据。