httpservletrequest获取body参数
时间: 2023-09-04 21:16:06 浏览: 270
在Servlet中,可以通过HttpServletRequest对象获取请求的参数。如果请求的参数是通过表单提交的,那么可以通过getParameter()方法获取。例如:
```java
String username = request.getParameter("username");
String password = request.getParameter("password");
```
但是,如果请求的参数是通过HTTP POST方法提交的,并且是以application/json的方式提交的,那么就需要通过其他方式获取请求的参数了。可以使用以下方法获取HTTP POST请求的Body参数:
```java
StringBuilder sb = new StringBuilder();
BufferedReader reader = request.getReader();
try {
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
} finally {
reader.close();
}
String requestBody = sb.toString();
```
这样就可以获取到请求的Body参数了。注意,要在处理请求参数之前调用getReader()方法,否则会抛出IllegalStateException异常。此外,也可以使用第三方库如Jackson或Gson来处理JSON请求参数。
相关问题
HttpServletRequest获取body体参数
可以使用HttpServletRequest对象的getInputStream()方法获取请求体中的参数。具体实现如下所示:
```java
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public String test(HttpServletRequest request) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return sb.toString();
}
```
在上述代码中,我们首先使用BufferedReader和InputStreamReader读取请求体中的参数,然后使用StringBuilder将其转换为字符串并返回。
HttpServletRequest获取body中的参数
要获取HTTP请求中的请求体(body)中的参数,可以使用HttpServletRequest对象的getInputStream()方法和BufferedReader对象的readLine()方法。以下是一个示例代码:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import javax.servlet.http.HttpServletRequest;
public class RequestBodyReader {
public static String read(HttpServletRequest request) throws IOException {
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
char[] charBuffer = new char[128];
int bytesRead = -1;
while ((bytesRead = bufferedReader.read(charBuffer)) != -1) {
stringBuilder.append(charBuffer, 0, bytesRead);
}
} catch (IOException ex) {
throw ex;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException ex) {
throw ex;
}
}
}
return stringBuilder.toString();
}
}
```
可以使用如下代码调用该方法:
```java
String body = RequestBodyReader.read(request);
```
其中,request是HttpServletRequest对象。返回的body即为请求体中的参数。
阅读全文