我正在尝试在HttpURLConnection
中写一些消息,并且试图在Servlet中检索它。这是两个不同的应用程序。
消息写代码 ((无异常处理)] >>
((无异常处理)public static void formUrlAndWrite() { URL url = null; HttpURLConnection httpConnection = null; OutputStreamWriter outStream = null; String host = "http://127.0.0.1:8080/HttpTester"; url = new URL(host); httpConnection = (HttpURLConnection) url.openConnection(); httpConnection.setDoOutput(true); httpConnection.setAllowUserInteraction(true); httpConnection.setDefaultUseCaches(false); outStream = new OutputStreamWriter(httpConnection.getOutputStream()); outStream.write("This is a plain text"); outStream.flush(); }
Servlet代码
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException { BufferedReader reader = null; PrintWriter out = null; StringBuffer buffer = new StringBuffer(); try { //reader = new BufferedReader(new InputStreamReader(request.getInputStream())); reader = request.getReader(); int read = 0; char[] charArray = new char[2000]; while((read=reader.read(charArray))>-1) { buffer.append(charArray, 0, read); } response.setContentType("text/html"); out = response.getWriter(); out.println("<html><body>"); out.print("<h2> Request Buffer is"+buffer+"</h2>"); out.println("</body></html>"); } }
这两个应用程序正在异步运行,并且我没有从servlet获得输出。我的疑问是,如果我运行消息写入应用程序,它将在url中写入数据。然后,当我运行servlet时,它如何获得请求?可能我在这方面做错了。任何帮助表示赞赏。
我尝试了下面的URL,该URL与我的问题非常相似,但没有帮助。
Getting request payload from POST request in Java servlet
我正在尝试在HttpURLConnection中编写一些消息,并且试图在Servlet中检索相同的消息。这是两个不同的应用程序。消息写代码(无异常处理)...
如果无法在第二个servlet中检索任何数据,则可能是因为您在某处调用了request.getParameter()
request.getParameter()
之类的东西。实际上,这些方法调用/getParameterValues()/getParameterMap()
,并且您只能读取一次请求的内容。
我曾在android中使用此代码,可能会对您有所帮助,可能不是完整的解决方案
我认为您应该将结果强制转换为字符串,因此代码与此类似(在Servlet页面中):字符串uname =(String)request.getParameter(“ key1”); //广播到字符串字符串密码=(字符串)request.getParameter(“ key2”); //广播到字符串