Interface ByteBody
- All Superinterfaces:
HttpBody
- All Known Implementing Classes:
ImmediateByteBody
,StreamingByteBody
@Internal
public sealed interface ByteBody
extends HttpBody
permits ImmediateByteBody, StreamingByteBody
Base class for a raw
HttpBody
with just bytes.- Since:
- 4.0.0
- Author:
- Jonas Konrad
-
Method Summary
Modifier and TypeMethodDescriptionbuffer
(io.netty.buffer.ByteBufAllocator alloc) Fully buffer this body.io.netty.handler.codec.http.HttpRequest
claimForReuse
(io.netty.handler.codec.http.HttpRequest request) Claim this body and convert it back to aHttpRequest
.static ByteBody
of
(io.netty.handler.codec.http.HttpRequest request) Create a byte body for the given request.processMulti
(FormDataHttpContentProcessor processor) Process this body using the given processor.
Only used for form processing now.rawContent
(HttpServerConfiguration configuration) Transform this body to aMultiObjectBody
containingByteBuf
s with the raw body.
-
Method Details
-
processMulti
Process this body using the given processor.
Only used for form processing now.- Parameters:
processor
- The processor to apply- Returns:
- The new processed body
- Throws:
Throwable
- Any exception thrown by the processor. Not all processing failures may throw immediately, however
-
rawContent
MultiObjectBody rawContent(HttpServerConfiguration configuration) throws ContentLengthExceededException Transform this body to aMultiObjectBody
containingByteBuf
s with the raw body. There is a check againstHttpServerConfiguration.getMaxRequestSize()
.- Parameters:
configuration
- The configuration for request size limits- Returns:
- The body containing
ByteBuf
s - Throws:
ContentLengthExceededException
- If the content length exceeds the configured request size. May also appear delayed forStreamingMultiObjectBody
-
buffer
Fully buffer this body.- Parameters:
alloc
- The allocator for storage- Returns:
- A flow that completes when all data has been read
-
claimForReuse
io.netty.handler.codec.http.HttpRequest claimForReuse(io.netty.handler.codec.http.HttpRequest request) Claim this body and convert it back to aHttpRequest
. This is used for proxying, where the request received by the server is reused by the client.- Parameters:
request
- The input request (headers and such)- Returns:
- The request including the body, either a
FullHttpRequest
or aStreamedHttpRequest
-
of
Create a byte body for the given request. The request must be either aFullHttpRequest
or aStreamedHttpRequest
.- Parameters:
request
- The request- Returns:
- The
ByteBody
for the body data
-