2012-10-29 139 views
0

我正在用Java创建一个多线程Web服务器(例如本地主机:http://127.0.0.1)。 我的问题是,我如何从Web服务器的客户端读取POST请求HTTP/1.1?在java中接收POST HTTP请求

下面的代码工作的GET请求,但我想知道我怎样才能在POST请求的属性:

void get(Socket socket) throws IOException { 
    byte[] buffer = new byte[BUFFER_SIZE]; 
    if (buffer[0] == (byte)'G' && 
     buffer[1] == (byte)'E' && 
     buffer[2] == (byte)'T' && 
     buffer[3] == (byte)' ') { 
    //READ FOLLOWING OF ? in header EX: Get /?ABC=XYZ 
    } 
} 
+3

恐怕你需要阅读HTTP协议规范 – gefei

+0

我建议不要自己滚动。使用[Apache HttpComponents](http://hc.apache.org/)或类似的东西。 –

回答

1

哪里buffer来自哪里?考虑使用(缓冲)socket.getInputStream()并逐字节读取(实际上是逐个字符)。然后,一旦你读GET/POST你可以继续阅读头的其余部分。

顺便说一句,有很多HTTP服务器和servlet容器可用,可以嵌入的实现HTTP的任何理由?请记住,HTTP是令人惊讶的复杂的协议...