Class ZeroCopyConsumer<T>

java.lang.Object
org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
org.apache.http.nio.client.methods.ZeroCopyConsumer<T>
All Implemented Interfaces:
Closeable, AutoCloseable, org.apache.http.concurrent.Cancellable, org.apache.http.nio.protocol.HttpAsyncResponseConsumer<T>

public abstract class ZeroCopyConsumer<T> extends org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
HttpAsyncResponseConsumer implementation that streams content entity enclosed in an HTTP response directly into a file without an intermediate in-memory buffer.

This consumer can be useful for file downloads.

Since:
4.0
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final RandomAccessFile
     
    private org.apache.http.Header
     
    private org.apache.http.entity.ContentType
     
    private final File
     
    private FileChannel
     
    private long
     
    private org.apache.http.HttpResponse
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected T
    buildResult(org.apache.http.protocol.HttpContext context)
     
    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 abstract T
    process(org.apache.http.HttpResponse response, File file, org.apache.http.entity.ContentType contentType)
    Invoked to process received file.
    protected void
     

    Methods inherited from class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer

    cancel, close, consumeContent, failed, getContentType, getException, getResult, isDone, onClose, responseCompleted, responseReceived

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • file

      private final File file
    • accessfile

      private final RandomAccessFile accessfile
    • response

      private org.apache.http.HttpResponse response
    • contentType

      private org.apache.http.entity.ContentType contentType
    • contentEncoding

      private org.apache.http.Header contentEncoding
    • fileChannel

      private FileChannel fileChannel
    • idx

      private long idx
  • Constructor Details

  • Method Details

    • onResponseReceived

      protected void onResponseReceived(org.apache.http.HttpResponse response)
      Specified by:
      onResponseReceived in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
    • onEntityEnclosed

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

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

      protected abstract T process(org.apache.http.HttpResponse response, File file, org.apache.http.entity.ContentType contentType) throws Exception
      Invoked to process received file.
      Parameters:
      response - original response head.
      file - file containing response content.
      contentType - the cotnent type.
      Returns:
      result of the response processing
      Throws:
      Exception
    • buildResult

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

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