diff --git a/unknow-server-servlet/src/main/java/unknow/server/servlet/http11/Http11Processor.java b/unknow-server-servlet/src/main/java/unknow/server/servlet/http11/Http11Processor.java index 387d61bd..e30e5d0b 100644 --- a/unknow-server-servlet/src/main/java/unknow/server/servlet/http11/Http11Processor.java +++ b/unknow-server-servlet/src/main/java/unknow/server/servlet/http11/Http11Processor.java @@ -59,12 +59,14 @@ private final void process(ByteBuffer b) throws IOException { decode(b); break; case CONTENT: + ByteBuffer slice = b.slice(); if (b.remaining() < contentLength) { contentLength -= b.remaining(); - dec.addContent(b); + dec.addContent(slice); + b.position(b.limit()); } else { state = START; - dec.addContent(b.slice().limit((int) contentLength)); + dec.addContent(slice.limit((int) contentLength)); dec.closeContent(); b.position(b.position() + (int) contentLength); contentLength = 0;