用request.getInputStream()获取请求体
时间: 2023-12-27 10:56:56 浏览: 126
您可以使用以下代码来获取请求体的内容:
```java
import java.io.IOException;
import java.io.InputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream requestBody = request.getInputStream();
// 读取请求体内容
byte[] buffer = new byte[4096];
int bytesRead;
StringBuilder stringBuilder = new StringBuilder();
while ((bytesRead = requestBody.read(buffer)) != -1) {
stringBuilder.append(new String(buffer, 0, bytesRead));
}
String bodyContent = stringBuilder.toString();
// 处理请求体内容
System.out.println(bodyContent);
// 其他处理逻辑...
}
// 其他方法...
}
```
在上述代码中,`doPost` 方法用于处理 POST 请求,其中通过调用 `request.getInputStream()` 方法获取请求体的输入流。然后,我们可以读取输入流中的内容,并进行相应的处理。
请注意,根据具体的业务需求,您可能需要在读取请求体内容之前设置适当的字符编码、处理异常等。此外,还需要根据请求的数据格式(如 JSON、XML 等)选择相应的方式对请求体进行解析。上述代码仅仅是一个简单的示例,您可以根据实际情况进行修改和扩展。
阅读全文