Java 从 post 请求中获取参数

Java get parameters from post request

我目前正在尝试处理 Java 中的一些传入 POST 请求。

到目前为止它正在部分工作。我可以接收请求,但我似乎无法提取随请求发送的参数和值。

这是我的 Java 目前接收请求的代码:

public HybridRemoteReceiver() {

try {
    System.out.println("running...");
    ServerSocket ss = new ServerSocket(3434);

    int i = 0;
    while (true) {
        Socket client = ss.accept();
        BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
        String line;

        while ((line = in.readLine()) != null) {
            if (line.length() == 0)
                break;
            i++;
        }
        in.close();
        client.close();
    }


} catch (Exception e) {
    e.printStackTrace();
}

}

我知道有一个叫做 HttpServer 的 class,但是 Java 中不存在这个 class。

顺便说一句,我在 eclipse 中使用 java 1.8。

但是,我可以找到 classes HttpExchangeHttpHandler,但似乎无法使它们工作。

基本上我想要实现的是接收随 post 请求发送的数据,而不是将任何内容发送回客户端。

我真的希望有人能帮我解决这个问题。

如果您希望处理 HTTP 请求,最好使用 servlet 容器,例如 Tomcat。 Tomcat 不会实现整个 Java EE 规范,但会为您提供一个 servlet 容器的实现,它将能够轻松处理 post 请求。这使您无需重新发明轮子,并允许您依赖已被纳入许多项目的成熟技术。

一旦 servlet 容器库位于类路径中,您就可以使用 类,例如 HttpServletRequest。一个是你有一个 servlet 容器,一个 Servlet 声明和映射,它就像调用 HttpServletRequest#getParameter() 方法一样简单。

使用像 tomcat 这样的 servlet 容器。

然后,研究Servlets(扩展HttpServlet),可以使用它的GET和POST方法

这里是 POST.

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        username = request.getParameter("username");

}

//用户名是从JSP通过POST发送的参数。

确实有一个 HttpServer class,它位于 sun.net.httpserver 包中的某处。

sun 包和子包可以安全使用,不像 com.sun 包和子包,后者可能被(重新)移动。

编辑:如果你愿意,你总是可以编写自己的服务器。如果您希望这样做,请确保它遵循定义您将使用的 HTTP 版本的所有 RFC。某些事情不是必需的,您可以向他们抛出 501 Not Implemented。