Class HttpChunkedInput

  • All Implemented Interfaces:
    io.netty.handler.stream.ChunkedInput<HttpContent>

    public class HttpChunkedInput
    extends Object
    implements io.netty.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);
    
         HttpChunkedInput httpChunkWriter = new HttpChunkedInput(
             new ChunkedFile("/tmp/myfile.txt"));
         ChannelFuture sendFileFuture = ctx.write(httpChunkWriter);
     }
     
    • Constructor Detail

      • HttpChunkedInput

        public HttpChunkedInput​(io.netty.handler.stream.ChunkedInput<io.netty.buffer.ByteBuf> input)
        Creates a new instance using the specified input.
        Parameters:
        input - ChunkedInput containing data to write
      • HttpChunkedInput

        public HttpChunkedInput​(io.netty.handler.stream.ChunkedInput<io.netty.buffer.ByteBuf> 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.netty.handler.stream.ChunkedInput<HttpContent>
        Throws:
        Exception
      • close

        public void close()
                   throws Exception
        Specified by:
        close in interface io.netty.handler.stream.ChunkedInput<HttpContent>
        Throws:
        Exception
      • readChunk

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

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

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