检索发布到 Java Servlet 的二进制数据的一般方法是什么?一个 byte[] 被发布到这个 servlet,我想我必须以某种方式解析 HttpServletRequest.getInputStream() 并提取 byte[] 内容。关于如何更改以下代码来实现此目的有什么想法吗?
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
StringBuilder stringBuilder = new StringBuilder();
BufferedReader bufferedReader = null;
try {
InputStream inputStream = request.getInputStream();
if (inputStream != null) {
bufferedReader = new BufferedReader(new InputStreamReader(
inputStream));
char[] charBuffer = new char[128];
int bytesRead = -1;
while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
stringBuilder.append(charBuffer, 0, bytesRead);
}
} else {
stringBuilder.append("");
}
} catch (IOException ex) {
throw ex;
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException ex) {
throw ex;
}
}
}
String body = stringBuilder.toString();
System.out.println(body);
}
最佳答案
不要将输入流包装在任何“Reader”中,因为它们从字节转换为字符,而您需要字节。
关于java - 从 HttpServletRequest 解析二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9270630/