gpt4 book ai didi

java - 在创建自己的 Java 服务器时让 HTTP POST 工作

转载 作者:行者123 更新时间:2023-12-02 06:39:12 24 4
gpt4 key购买 nike

我正在尝试制作一个可以接受 GET 和 POST HTTP 请求的 java 服务器。现在我已经成功地让 GET 方法起作用了。但我无法让 POST 方法发挥作用。我的服务器设法读取请求 header ,但似乎无法读取消息正文。即发布的内容。这是代码:

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 中我有这个:

enter image description here

我不知道如何获取“表单数据”。任何帮助将不胜感激!!

更新:

这是问题进一步缩小的范围。 From 发送 HTTP 请求正常。使用 HTTP POST 方法,我们有请求 header a\r\n ,然后是消息数据。问题是当我的 BufferedData 变量 ServerInput 读取\r\n (空行)时,它会停止从 ServerInput 读取。有任何解决这个问题的方法吗?

最佳答案

您需要阅读有关 HTTP 协议(protocol)的内容。您可以查看 HttpServlet api 来了解这一点。

servlet 的目的正是从套接字传递到 Http 协议(protocol)。您确定要再做一次这项工作吗?

关于java - 在创建自己的 Java 服务器时让 HTTP POST 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19333816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com