BodyReaderHttpServletRequestWrapper#body优化
This commit is contained in:
parent
49b49e1086
commit
377030333c
@ -9,8 +9,10 @@ import javax.servlet.ServletRequest;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletRequestWrapper;
|
||||
import javax.servlet.http.Part;
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
@ -33,8 +35,7 @@ public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapp
|
||||
super(request);
|
||||
this.request = request;
|
||||
// request.getParameterMap();
|
||||
String sessionStream = getBodyString(request);
|
||||
body = sessionStream.getBytes(Charset.forName("UTF-8"));
|
||||
body = getBodyBytes(request);
|
||||
}
|
||||
|
||||
|
||||
@ -44,6 +45,20 @@ public class BodyReaderHttpServletRequestWrapper extends HttpServletRequestWrapp
|
||||
return request.getParts();
|
||||
}
|
||||
|
||||
private byte[] getBodyBytes(ServletRequest request) throws IOException {
|
||||
try (BufferedInputStream bis = new BufferedInputStream(request.getInputStream());
|
||||
ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
|
||||
byte[] buffer = new byte[1024];
|
||||
int len;
|
||||
while ((len = bis.read(buffer)) > 0) {
|
||||
baos.write(buffer, 0, len);
|
||||
}
|
||||
return baos.toByteArray();
|
||||
} catch (IOException ex) {
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
private String getBodyString(ServletRequest request) throws IOException {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
InputStream ins = request.getInputStream();
|
||||
|
||||
Loading…
Reference in New Issue
Block a user