Class AbstractAsyncResponseConsumer<T>

java.lang.Object
org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.http.concurrent.Cancellable, HttpAsyncResponseConsumer<T>
Direct Known Subclasses:
BasicAsyncResponseConsumer

public abstract class AbstractAsyncResponseConsumer<T> extends Object implements HttpAsyncResponseConsumer<T>
Abstract HttpAsyncResponseConsumer implementation that relieves its subclasses from having to manage internal state and provides a number of protected event methods that they need to implement.
Since:
4.2
  • Constructor Details

    • AbstractAsyncResponseConsumer

      public AbstractAsyncResponseConsumer()
  • Method Details

    • onResponseReceived

      protected abstract void onResponseReceived(org.apache.http.HttpResponse response) throws org.apache.http.HttpException, IOException
      Invoked when a HTTP response message is received. Please note that the onContentReceived(ContentDecoder, IOControl) method will be invoked only if the response messages has a content entity enclosed.
      Parameters:
      response - HTTP response message.
      Throws:
      org.apache.http.HttpException - in case of HTTP protocol violation
      IOException - in case of an I/O error
    • onContentReceived

      protected abstract void onContentReceived(ContentDecoder decoder, IOControl ioControl) throws IOException
      Invoked to process a chunk of content from the ContentDecoder. The IOControl interface can be used to suspend input events if the consumer is temporarily unable to consume more content.

      The consumer can use the ContentDecoder.isCompleted() method to find out whether or not the message content has been fully consumed.

      Parameters:
      decoder - content decoder.
      ioControl - I/O control of the underlying connection.
      Throws:
      IOException - in case of an I/O error
    • onEntityEnclosed

      protected abstract void onEntityEnclosed(org.apache.http.HttpEntity entity, org.apache.http.entity.ContentType contentType) throws IOException
      Invoked if the response message encloses a content entity.
      Parameters:
      entity - HTTP entity
      contentType - expected content type.
      Throws:
      IOException - in case of an I/O error
    • buildResult

      protected abstract T buildResult(org.apache.http.protocol.HttpContext context) throws Exception
      Invoked to generate a result object from the received HTTP response message.
      Parameters:
      context - HTTP context.
      Returns:
      result of the response processing.
      Throws:
      Exception - in case of an abnormal termination.
    • releaseResources

      protected abstract void releaseResources()
      Invoked to release all system resources currently allocated.
    • onClose

      protected void onClose() throws IOException
      Invoked when the consumer is being closed.
      Throws:
      IOException - may be thrown by subclassses
      Since:
      4.3
    • getContentType

      protected org.apache.http.entity.ContentType getContentType(org.apache.http.HttpEntity entity)
      Since:
      4.4
    • responseReceived

      public final void responseReceived(org.apache.http.HttpResponse response) throws IOException, org.apache.http.HttpException
      Specified by:
      responseReceived in interface HttpAsyncResponseConsumer<T>
      Parameters:
      response - HTTP response message.
      Throws:
      IOException - in case of an I/O error
      org.apache.http.HttpException - in case of HTTP protocol violation
    • consumeContent

      public final void consumeContent(ContentDecoder decoder, IOControl ioControl) throws IOException
      Specified by:
      consumeContent in interface HttpAsyncResponseConsumer<T>
      Parameters:
      decoder - content decoder.
      ioControl - I/O control of the underlying connection.
      Throws:
      IOException - in case of an I/O error
    • responseCompleted

      public final void responseCompleted(org.apache.http.protocol.HttpContext context)
      Specified by:
      responseCompleted in interface HttpAsyncResponseConsumer<T>
      Parameters:
      context - HTTP context
    • cancel

      public final boolean cancel()
      Specified by:
      cancel in interface org.apache.http.concurrent.Cancellable
    • failed

      public final void failed(Exception ex)
      Description copied from interface: HttpAsyncResponseConsumer
      Invoked to signal that the response processing terminated abnormally.
      Specified by:
      failed in interface HttpAsyncResponseConsumer<T>
      Parameters:
      ex - exception
    • close

      public final void close() throws IOException
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Throws:
      IOException
    • getException

      public Exception getException()
      Description copied from interface: HttpAsyncResponseConsumer
      Returns an exception in case of an abnormal termination. This method returns null if the response processing is still ongoing or if it completed successfully.
      Specified by:
      getException in interface HttpAsyncResponseConsumer<T>
      See Also:
    • getResult

      public T getResult()
      Description copied from interface: HttpAsyncResponseConsumer
      Returns a result of the response processing, when available. This method returns null if the response processing is still ongoing.
      Specified by:
      getResult in interface HttpAsyncResponseConsumer<T>
      See Also:
    • isDone

      public boolean isDone()
      Description copied from interface: HttpAsyncResponseConsumer
      Determines whether or not the response processing completed. If the response processing terminated normally HttpAsyncResponseConsumer.getResult() can be used to obtain the result. If the response processing terminated abnormally HttpAsyncResponseConsumer.getException() can be used to obtain the cause.
      Specified by:
      isDone in interface HttpAsyncResponseConsumer<T>