2012-10-29 184 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是令人驚訝的複雜的協議...