我正在尝试使用输入流从客户端读取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;
}
非常感谢。
答案 0 :(得分:0)
一般情况下,网络套接字不知道结束的位置。它可能是应用程序协议特定的。对于HTTP,您可以读取一个标题行,直到行结束(bytesRead!=' \ n')。然后,您应该使用available
方法检查是否存在下一部分数据。