HttpServletRequest获取body
时间: 2023-11-01 14:18:29 浏览: 172
您可以使用`HttpServletRequest`对象的`getReader()`方法和`getInputStream()`方法来获取POST请求的请求体。
如果请求体是以字符流的形式发送的,您可以使用`getReader()`方法读取请求体内容。以下是一个示例代码:
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class MyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StringBuilder requestBody = new StringBuilder();
BufferedReader reader = request.getReader();
String line;
while ((line = reader.readLine()) != null) {
requestBody.append(line);
}
// 处理请求体内容
String body = requestBody.toString();
// 其他逻辑...
}
}
```
如果请求体是以字节流的形式发送的,您可以使用`getInputStream()`方法读取请求体内容。以下是一个示例代码:
```java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class MyServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
InputStream inputStream = request.getInputStream();
byte[] buffer = new byte[1024];
int bytesRead;
ByteArrayOutputStream requestBody = new ByteArrayOutputStream();
while ((bytesRead = inputStream.read(buffer)) != -1) {
requestBody.write(buffer, 0, bytesRead);
}
// 处理请求体内容
byte[] body = requestBody.toByteArray();
// 其他逻辑...
}
}
```
请注意,以上示例代码仅演示如何获取请求体内容,并未进行异常处理或其他逻辑处理。在实际应用中,您可能需要根据请求的Content-Type进行适当的处理。
阅读全文