我正在尝试制作一个可以接受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中,我有以下内容:
我不确定如何获取“表格数据”。任何帮助将不胜感激!
更新:
这是进一步缩小问题的范围。从发送HTTP请求罚款。使用HTTP POST方法,我们使请求标头为\ r \ n,然后是消息数据。问题是当我的BufferedData变量
ServerInput
读入\ r \ n(空行)时,它停止了从ServerInput
读取。有任何解决这个问题的方法吗? 最佳答案
您需要阅读有关HTTP协议的信息。您可以为此查看HttpServlet api。
Servlet的目的正是从套接字传递到Http协议。您确定要再次做这项工作吗?