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
FieldsModifier and TypeFieldDescriptionprivate 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 -
Method Summary
Modifier and TypeMethodDescriptionprotected 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
-
Field Details
-
file
-
accessfile
-
response
private org.apache.http.HttpResponse response -
contentType
private org.apache.http.entity.ContentType contentType -
contentEncoding
private org.apache.http.Header contentEncoding -
fileChannel
-
idx
private long idx
-
-
Constructor Details
-
ZeroCopyConsumer
- Throws:
FileNotFoundException
-
-
Method Details
-
onResponseReceived
protected void onResponseReceived(org.apache.http.HttpResponse response) - Specified by:
onResponseReceived
in classorg.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 classorg.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 classorg.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
-
releaseResources
protected void releaseResources()- Specified by:
releaseResources
in classorg.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
-