我正在尝试制作一个可以接受 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
. 有任何解决这个问题的方法吗?