HttpServletResponse中获取响应内容
时间: 2023-08-18 09:08:37 浏览: 1122
在`HttpServletResponse`对象中,可以通过以下方式来获取响应内容:
1. 使用`response.getWriter()`方法获取`PrintWriter`对象,然后使用`print`或`println`方法将响应内容输出到`PrintWriter`中,最后通过`toString`方法获取响应内容的字符串表示。
```java
import javax.servlet.http.HttpServletResponse;
import java.io.PrintWriter;
import java.io.StringWriter;
public String getResponseContent(HttpServletResponse response) {
try {
StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
printWriter.print(response.getWriter());
printWriter.flush();
return stringWriter.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
```
2. 使用`response.getOutputStream()`方法获取`ServletOutputStream`对象,然后将响应内容写入到`ServletOutputStream`中,最后通过`toString`方法获取响应内容的字符串表示。
```java
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public String getResponseContent(HttpServletResponse response) {
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = response.getOutputStream().read(buffer)) != -1) {
byteArrayOutputStream.write(buffer, 0, length);
}
return byteArrayOutputStream.toString();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
```
这两种方式都可以用来获取`HttpServletResponse`对象中的响应内容。请根据你的具体情况选择适合的方法。
阅读全文