0

Java でマルチスレッド Web サーバー (例: ローカル ホスト:http://127.0.0.1) を作成しています。私の質問は、Web サーバーでクライアントから POST 要求 HTTP/1.1 を読み取る方法です。

次のコードは 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 
    }
}
4

1 に答える 1

1

どこbufferから来たの?(バッファリングされた)socket.getInputStream()バイトごと(実際には文字ごと)の読み取りを検討してください。次に、読んだらGET/POSTヘッダーの残りの部分を読み続けることができます。

ところで、非常に多くのHTTPサーバーとサーブレットコンテナが利用可能で、埋め込む準備ができているHTTPを実装する理由はありますか?HTTPは驚くほど複雑なプロトコルであることを忘れないでください...

于 2012-10-29T21:09:19.547 に答える