Class HeapBufferedAsyncResponseConsumer

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, org.apache.http.concurrent.Cancellable, org.apache.http.nio.protocol.HttpAsyncResponseConsumer<org.apache.http.HttpResponse>

    public class HeapBufferedAsyncResponseConsumer
    extends org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
    Default implementation of HttpAsyncResponseConsumer. Buffers the whole response content in heap memory, meaning that the size of the buffer is equal to the content-length of the response. Limits the size of responses that can be read based on a configurable argument. Throws an exception in case the entity is longer than the configured buffer limit.
    • Constructor Summary

      Constructors 
      Constructor Description
      HeapBufferedAsyncResponseConsumer​(int bufferLimit)
      Creates a new instance of this consumer with the provided buffer limit
    • Method Summary

      Modifier and Type Method Description
      protected org.apache.http.HttpResponse buildResult​(org.apache.http.protocol.HttpContext context)  
      int getBufferLimit()
      Get the limit of the buffer.
      protected org.apache.http.nio.util.ByteBufferAllocator getByteBufferAllocator()
      Returns the instance of ByteBufferAllocator to use for content buffering.
      protected void onContentReceived​(org.apache.http.nio.ContentDecoder decoder, org.apache.http.nio.IOControl ioctrl)  
      protected void onEntityEnclosed​(org.apache.http.HttpEntity entity, org.apache.http.entity.ContentType contentType)  
      protected void onResponseReceived​(org.apache.http.HttpResponse response)  
      protected void releaseResources()  
      • Methods inherited from class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer

        cancel, close, consumeContent, failed, getException, getResult, isDone, onClose, responseCompleted, responseReceived
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • HeapBufferedAsyncResponseConsumer

        public HeapBufferedAsyncResponseConsumer​(int bufferLimit)
        Creates a new instance of this consumer with the provided buffer limit
    • Method Detail

      • getBufferLimit

        public int getBufferLimit()
        Get the limit of the buffer.
      • onResponseReceived

        protected void onResponseReceived​(org.apache.http.HttpResponse response)
                                   throws org.apache.http.HttpException,
                                          java.io.IOException
        Specified by:
        onResponseReceived in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
        Throws:
        org.apache.http.HttpException
        java.io.IOException
      • onEntityEnclosed

        protected void onEntityEnclosed​(org.apache.http.HttpEntity entity,
                                        org.apache.http.entity.ContentType contentType)
                                 throws java.io.IOException
        Specified by:
        onEntityEnclosed in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
        Throws:
        java.io.IOException
      • getByteBufferAllocator

        protected org.apache.http.nio.util.ByteBufferAllocator getByteBufferAllocator()
        Returns the instance of ByteBufferAllocator to use for content buffering. Allows to plug in any ByteBufferAllocator implementation.
      • onContentReceived

        protected void onContentReceived​(org.apache.http.nio.ContentDecoder decoder,
                                         org.apache.http.nio.IOControl ioctrl)
                                  throws java.io.IOException
        Specified by:
        onContentReceived in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
        Throws:
        java.io.IOException
      • buildResult

        protected org.apache.http.HttpResponse buildResult​(org.apache.http.protocol.HttpContext context)
                                                    throws java.lang.Exception
        Specified by:
        buildResult in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>
        Throws:
        java.lang.Exception
      • releaseResources

        protected void releaseResources()
        Specified by:
        releaseResources in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<org.apache.http.HttpResponse>