Package org.apache.http.entity
Class InputStreamEntity
java.lang.Object
org.apache.http.entity.AbstractHttpEntity
org.apache.http.entity.InputStreamEntity
- All Implemented Interfaces:
HttpEntity
public class InputStreamEntity extends AbstractHttpEntity
A streamed entity obtaining content from an
InputStream.- Since:
- 4.0
- Version:
- $Revision: 617591 $
- Author:
- Oleg Kalnichevski
-
Field Summary
Fields inherited from class org.apache.http.entity.AbstractHttpEntity
chunked, contentEncoding, contentType -
Constructor Summary
Constructors Constructor Description InputStreamEntity(InputStream instream, long length) -
Method Summary
Modifier and Type Method Description voidconsumeContent()Does not consume anything.InputStreamgetContent()Creates a new InputStream object of the entity.longgetContentLength()Tells the length of the content, if known.booleanisRepeatable()Tells if the entity is capable to produce its data more than once.booleanisStreaming()Tells whether this entity depends on an underlying stream.voidwriteTo(OutputStream outstream)Writes the entity content to the output stream.Methods inherited from class org.apache.http.entity.AbstractHttpEntity
getContentEncoding, getContentType, isChunked, setChunked, setContentEncoding, setContentEncoding, setContentType, setContentType
-
Constructor Details
-
InputStreamEntity
-
-
Method Details
-
isRepeatable
public boolean isRepeatable()Description copied from interface:HttpEntityTells if the entity is capable to produce its data more than once. A repeatable entity's getContent() and writeTo(OutputStream) methods can be called more than once whereas a non-repeatable entity's can not.- Returns:
- true if the entity is repeatable, false otherwise.
-
getContentLength
public long getContentLength()Description copied from interface:HttpEntityTells the length of the content, if known.- Returns:
- the number of bytes of the content, or
a negative number if unknown. If the content length is known
but exceeds
Long.MAX_VALUE, a negative number is returned.
-
getContent
Description copied from interface:HttpEntityCreates a new InputStream object of the entity. It is a programming error to return the same InputStream object more than once. Entities that are notrepeatablewill throw an exception if this method is called multiple times.- Returns:
- a new input stream that returns the entity data.
- Throws:
IOException- if the stream could not be created
-
writeTo
Description copied from interface:HttpEntityWrites the entity content to the output stream.- Parameters:
outstream- the output stream to write entity content to- Throws:
IOException- if an I/O error occurs
-
isStreaming
public boolean isStreaming()Description copied from interface:HttpEntityTells whether this entity depends on an underlying stream. Streamed entities should returntrueuntil the content has been consumed,falseafterwards. Self-contained entities should returnfalse. Wrapping entities should delegate this call to the wrapped entity.
The content of a streamed entity is consumed when the stream returned bygetContenthas been read to EOF, or afterconsumeContenthas been called. If a streamed entity can not detect whether the stream has been read to EOF, it should returntrueuntilconsumeContentis called.- Returns:
trueif the entity content is streamed and not yet consumed,falseotherwise
-
consumeContent
Description copied from class:AbstractHttpEntityDoes not consume anything. The default implementation does nothing ifisStreamingreturnsfalse, and throws an exception if it returnstrue. This removes the burden of implementing an empty method for non-streaming entities.- Specified by:
consumeContentin interfaceHttpEntity- Overrides:
consumeContentin classAbstractHttpEntity- Throws:
IOException- in case of an I/O problem
-