Class HttpChunkedInput

  • All Implemented Interfaces:
    io.netty5.handler.stream.ChunkedInput<HttpContent<?>>, AutoCloseable

    public class HttpChunkedInput
    extends Object
    implements io.netty5.handler.stream.ChunkedInput<HttpContent<?>>
    A ChunkedInput that fetches data chunk by chunk for use with HTTP chunked transfers.

    Each chunk from the input data will be wrapped within a HttpContent. At the end of the input data, LastHttpContent will be written.

    Ensure that your HTTP response header contains Transfer-Encoding: chunked.

     public void messageReceived(ChannelHandlerContext ctx, FullHttpRequest request) throws Exception {
         HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);
         response.headers().set(TRANSFER_ENCODING, CHUNKED);
         ctx.write(response);
    
         HttpContentChunkedInput httpChunkWriter = new HttpChunkedInput(
             new ChunkedFile("/tmp/myfile.txt"));
         Future<Void> sendFileFuture = ctx.write(httpChunkWriter);
     }
     
    • Constructor Detail

      • HttpChunkedInput

        public HttpChunkedInput​(io.netty5.handler.stream.ChunkedInput<io.netty5.buffer.api.Buffer> input,
                                LastHttpContent<?> lastHttpContent)
        Creates a new instance using the specified input. lastHttpContent will be written as the terminating chunk.
        Parameters:
        input - ChunkedInput containing data to write
        lastHttpContent - LastHttpContent that will be written as the terminating chunk. Use this for training headers.
    • Method Detail

      • isEndOfInput

        public boolean isEndOfInput()
                             throws Exception
        Specified by:
        isEndOfInput in interface io.netty5.handler.stream.ChunkedInput<HttpContent<?>>
        Throws:
        Exception
      • readChunk

        public HttpContent<?> readChunk​(io.netty5.buffer.api.BufferAllocator allocator)
                                 throws Exception
        Specified by:
        readChunk in interface io.netty5.handler.stream.ChunkedInput<HttpContent<?>>
        Throws:
        Exception
      • length

        public long length()
        Specified by:
        length in interface io.netty5.handler.stream.ChunkedInput<HttpContent<?>>
      • progress

        public long progress()
        Specified by:
        progress in interface io.netty5.handler.stream.ChunkedInput<HttpContent<?>>