[英]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
的类,但这就像Java中不存在此类。
我在Eclipse BTW中使用Java 1.8。
但是,我可以找到HttpExchange
和HttpHandler
类,但似乎无法使它们正常工作。
基本上,我要实现的是接收与发布请求一起发送的数据,而不将任何内容发送回客户端。
我真的希望有人能帮助我解决这个问题。
使用Tomcat容器之类的servlet容器。
然后,研究Servlet(扩展HttpServlet),可以使用其GET和POST方法。
这是POST。
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
username = request.getParameter("username");
}
//用户名是从JSP通过POST发送的参数。
如果要处理HTTP请求,最好的做法是使用Servlet容器,例如Tomcat。 Tomcat不会实现整个Java EE规范,但是会为您提供servlet容器的实现,该容器将能够轻松处理post
请求。 这使您不必重新发明轮子,而使您可以依赖于已纳入许多项目的成熟技术。
一旦servlet容器库位于类路径上,您就可以使用HttpServletRequest
类的类。 您只需站起来一个Servlet
容器,然后声明并映射一个Servlet
,其操作就像调用HttpServletRequest#getParameter()
方法一样简单。
确实有一个HttpServer
类,可以在sun.net.httpserver
包中的某个位置找到它。
与com.sun
软件包和子软件包不同, sun
软件包和子软件包可以安全使用。
编辑:如果愿意,您始终可以编写自己的服务器。 如果您希望这样做,请确保它遵循定义您将使用的HTTP版本的所有RFC。 某些事情不是必需的,您可以向其抛出501未实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.