• BlackBerry Dynamics
  • Runtime library for Android applications
  • 12.0.1.79
HttpEntity Interface Reference

An entity that can be sent or received with an HTTP message. More...

Inheritance diagram for HttpEntity:
AbstractHttpEntity HttpEntityWrapper BasicHttpEntity ByteArrayEntity EntityTemplate FileEntity InputStreamEntity SerializableEntity StringEntity BasicManagedEntity BufferedHttpEntity

Description

Entities can be found in some requests and in responses , where they are optional.

In some places, the JavaDoc distinguishes three kinds of entities, depending on where their content originates:

  • streamed: The content is received from a stream, or generated on the fly. In particular, this category includes entities being received from a connection . Streamed entities are generally not repeatable .
  • self-contained: The content is in memory or obtained by means that are independent from a connection or other entity. Self-contained entities are generally repeatable .
  • wrapping: The content is obtained from another entity.

This distinction is important for connection management with incoming entities. For entities that are created by an application and only sent using the HTTP components framework, the difference between streamed and self-contained is of little importance. In that case, it is suggested to consider non-repeatable entities as streamed, and those that are repeatable (without a huge effort) as self-contained.

Author
Oleg Kalnichevski
Version
Revision
645824
Since
4.0

Notice

The following notice applies to the original API on which this API is based, and to its documentation. The documentation of this API has been revised from the original.

/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

Public Member Functions

boolean isRepeatable ()
 Tells if the entity is capable to produce its data more than once. More...
 
boolean isChunked ()
 Tells about chunked encoding for this entity. More...
 
long getContentLength ()
 Tells the length of the content, if known. More...
 
Header getContentType ()
 Obtains the Content-Type header, if known. More...
 
Header getContentEncoding ()
 Obtains the Content-Encoding header, if known. More...
 
InputStream getContent () throws IOException, IllegalStateException
 Creates a new InputStream object of the entity. More...
 
void writeTo (OutputStream outstream) throws IOException
 Writes the entity content to the output stream. More...
 
boolean isStreaming ()
 Tells whether this entity depends on an underlying stream. More...
 
void consumeContent () throws IOException
 This method is called to indicate that the content of this entity is no longer required. More...
 

Member Function Documentation

◆ isRepeatable()

boolean isRepeatable ( )

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.

Implemented in BufferedHttpEntity, BasicHttpEntity, BasicManagedEntity, SerializableEntity, HttpEntityWrapper, StringEntity, EntityTemplate, InputStreamEntity, FileEntity, and ByteArrayEntity.

◆ isChunked()

boolean isChunked ( )

The primary purpose of this method is to indicate whether chunked encoding should be used when the entity is sent. For entities that are received, it can also indicate whether the entity was received with chunked encoding.
The behavior of wrapping entities is implementation dependent, but should respect the primary purpose.

Returns
true if chunked encoding is preferred for this entity, or false if it is not

Implemented in AbstractHttpEntity, BufferedHttpEntity, and HttpEntityWrapper.

◆ getContentLength()

long getContentLength ( )
Returns
the number of bytes of the content, or a negative number if unknown. If the content length is known but exceeds java.lang.Long.MAX_VALUE, a negative number is returned.

Implemented in HttpEntityWrapper, SerializableEntity, StringEntity, BufferedHttpEntity, InputStreamEntity, FileEntity, BasicHttpEntity, ByteArrayEntity, and EntityTemplate.

◆ getContentType()

Header getContentType ( )

This is the header that should be used when sending the entity, or the one that was received with the entity. It can include a charset attribute.

Returns
the Content-Type header for this entity, or null if the content type is unknown

Implemented in AbstractHttpEntity, and HttpEntityWrapper.

◆ getContentEncoding()

Header getContentEncoding ( )

This is the header that should be used when sending the entity, or the one that was received with the entity. Wrapping entities that modify the content encoding should adjust this header accordingly.

Returns
the Content-Encoding header for this entity, or null if the content encoding is unknown

Implemented in AbstractHttpEntity, and HttpEntityWrapper.

◆ getContent()

InputStream getContent ( ) throws IOException, IllegalStateException

It is a programming error to return the same InputStream object more than once. Entities that are not repeatable will throw an exception if this method is called multiple times.

Returns
a new input stream that returns the entity data.
Exceptions
IOExceptionif the stream could not be created
IllegalStateExceptionif this entity is not repeatable and the stream has already been obtained previously

Implemented in BasicManagedEntity, HttpEntityWrapper, StringEntity, BasicHttpEntity, BufferedHttpEntity, InputStreamEntity, FileEntity, SerializableEntity, ByteArrayEntity, and EntityTemplate.

◆ writeTo()

void writeTo ( OutputStream  outstream) throws IOException
Parameters
outstreamthe output stream to write entity content to
Exceptions
IOExceptionif an I/O error occurs

Implemented in HttpEntityWrapper, SerializableEntity, BasicManagedEntity, BasicHttpEntity, BufferedHttpEntity, StringEntity, InputStreamEntity, FileEntity, ByteArrayEntity, and EntityTemplate.

◆ isStreaming()

boolean isStreaming ( )

Streamed entities should return true until the content has been consumed, false afterwards. Self-contained entities should return false. Wrapping entities should delegate this call to the wrapped entity.
The content of a streamed entity is consumed when the stream returned by getContent has been read to EOF, or after consumeContent has been called. If a streamed entity can not detect whether the stream has been read to EOF, it should return true until consumeContent is called.

Returns
true if the entity content is streamed and not yet consumed, false otherwise

Implemented in BasicHttpEntity, BufferedHttpEntity, HttpEntityWrapper, InputStreamEntity, StringEntity, FileEntity, SerializableEntity, ByteArrayEntity, and EntityTemplate.

◆ consumeContent()

void consumeContent ( ) throws IOException

All entity implementations are expected to release all allocated resources as a result of this method invocation. Content streaming entities are also expected to dispose of the remaining content, if any. Wrapping entities should delegate this call to the wrapped entity.
This method is of particular importance for entities being received from a connection . The entity needs to be consumed completely in order to re-use the connection with keep-alive.

Exceptions
IOExceptionif an I/O error occurs. This indicates that connection keep-alive is not possible.

Implemented in AbstractHttpEntity, BasicHttpEntity, InputStreamEntity, HttpEntityWrapper, BasicManagedEntity, and EntityTemplate.