44 lines
1.0 KiB
Java
44 lines
1.0 KiB
Java
package org.baeldung.cachedrequest;
|
|
|
|
import java.io.ByteArrayInputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStream;
|
|
|
|
import javax.servlet.ReadListener;
|
|
import javax.servlet.ServletInputStream;
|
|
|
|
public class CachedBodyServletInputStream extends ServletInputStream {
|
|
|
|
private InputStream cachedBodyInputStream;
|
|
|
|
public CachedBodyServletInputStream(byte[] cachedBody) {
|
|
this.cachedBodyInputStream = new ByteArrayInputStream(cachedBody);
|
|
}
|
|
|
|
@Override
|
|
public boolean isFinished() {
|
|
try {
|
|
return cachedBodyInputStream.available() == 0;
|
|
} catch (IOException e) {
|
|
// TODO Auto-generated catch block
|
|
e.printStackTrace();
|
|
}
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isReady() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public void setReadListener(ReadListener readListener) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override
|
|
public int read() throws IOException {
|
|
return cachedBodyInputStream.read();
|
|
}
|
|
}
|