GET および POST HTTP 要求を受け入れることができる Java サーバーを作成しようとしています。これで、GET メソッドを機能させることができました。しかし、私は POST メソッドを機能させることができません。サーバーはリクエスト ヘッダーを読み取ることができますが、メッセージの本文を読み取っていないようです。つまり、投稿されたもの。コードは次のとおりです。
int port = 1991;
ServerSocket serverSocket = new ServerSocket(port);
System.err.println("The Server is on and listening on port " + port);
System.out.println(" ");
while (true)
{
Socket ClientSocketConnection = serverSocket.accept();
System.err.println("We have established a connection with a client!");
System.out.println(" ");
BufferedReader ServerInput = new BufferedReader(new InputStreamReader(ClientSocketConnection.getInputStream()));
DataOutputStream ServerOutput =new DataOutputStream(ClientSocketConnection.getOutputStream());
String StringInput;
int iCount = 0;
int CountNull = 0;
while ((StringInput = ServerInput.readLine()) != null)
{
System.out.println(StringInput);
}
ここで、ソケットを介して送信されるすべてのものを表示するだけです。しかし、何らかの理由でリクエストメッセージの本文を取得できず、Chromeでこれがあるため、本文が送信されていることがわかります。
その「フォームデータ」を取得する方法がわかりません。どんな助けでも本当に感謝します!!
アップデート:
ここで問題をさらに絞り込みます。From は HTTP リクエストを正常に送信します。HTTP POST メソッドを使用すると、リクエスト ヘッダーが \r\n になり、メッセージ データが続きます。問題は、私の BufferedData 変数ServerInput
が \r\n (空の行) を読み取ると、ServerInput
. とにかくこれを修正するには?