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
-
Method Summary
Modifier and TypeMethodDescriptionio.micronaut.core.execution.ExecutionFlow<ImmediateByteBody>buffer(io.netty.buffer.ByteBufAllocator alloc) Fully buffer this body.io.netty.handler.codec.http.HttpRequestclaimForReuse(io.netty.handler.codec.http.HttpRequest request) Claim this body and convert it back to aHttpRequest.static ByteBodyof(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(io.micronaut.http.server.HttpServerConfiguration configuration) Transform this body to aMultiObjectBodycontainingByteBufs 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(io.micronaut.http.server.HttpServerConfiguration configuration) throws io.micronaut.http.exceptions.ContentLengthExceededException Transform this body to aMultiObjectBodycontainingByteBufs with the raw body. There is a check againstHttpServerConfiguration.getMaxRequestSize().- Parameters:
configuration- The configuration for request size limits- Returns:
- The body containing
ByteBufs - Throws:
io.micronaut.http.exceptions.ContentLengthExceededException- If the content length exceeds the configured request size. May also appear delayed forStreamingMultiObjectBody
-
buffer
io.micronaut.core.execution.ExecutionFlow<ImmediateByteBody> buffer(io.netty.buffer.ByteBufAllocator alloc) 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
FullHttpRequestor aStreamedHttpRequest
-
of
Create a byte body for the given request. The request must be either aFullHttpRequestor aStreamedHttpRequest.- Parameters:
request- The request- Returns:
- The
ByteBodyfor the body data
-