[英]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.