我想取出 request playload 的值
private String getStringFromStream(HttpServletRequest req) {
HttpServletRequestWrapper hsrw = new HttpServletRequestWrapper (req);
ServletInputStream is;
try {
is = hsrw.getInputStream();
int nRead = 1;
int nTotalRead = 0;
byte[] bytes = new byte[10240];
while (nRead > 0) {
nRead = is.read(bytes, nTotalRead, bytes.length - nTotalRead);//这里报错了 不知道怎么回事?
if (nRead > 0)
nTotalRead = nTotalRead + nRead;
}
String str = new String(bytes, 0, nTotalRead, "utf-8");
return str;
} catch (IOException e) {
e.printStackTrace();
return "";
}
}
org.apache.catalina.connector.ClientAbortException: java.io.EOFException
at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:322)
at org.apache.catalina.connector.InputBuffer.checkByteBufferEof(InputBuffer.java:600)
at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:340)
at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:132)
at com.chenli.main.security.oauth2.token.TokenLoginFilter.getStringFromStream(TokenLoginFilter.java:69)
at com.chenli.main.security.oauth2.token.TokenLoginFilter.attemptAuthentication(TokenLoginFilter.java:40)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:222)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)