gpt4 book ai didi

java - 无法从 Servlet 检索数据

转载 作者:太空宇宙 更新时间:2023-11-04 14:30:48 24 4
gpt4 key购买 nike

我正在尝试在 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,它与我的问题非常相似,但没有帮助。

Getting request payload from POST request in Java servlet

最佳答案

如果您无法在第二个 servlet 中检索任何数据,可能是因为您正在调用类似 request.getParameter() 的内容。 /getParameterValues()/getParameterMap() 某处。事实上,这些方法调用 getInputStream() 并且您只能读取一次请求的内容。

关于java - 无法从 Servlet 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26175230/

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