## org.apache.http.entity
Class BufferedHttpEntity

    java.lang.Object
      org.apache.http.entity.HttpEntityWrapper
          org.apache.http.entity.BufferedHttpEntity

All Implemented Interfaces:
  HttpEntity

    @NotThreadSafe
    public class BufferedHttpEntity

extends HttpEntityWrapper

A wrapping entity that buffers it content if necessary. The buffered entity is always repeatable. If the wrapped entity is repeatable itself, calls are passed through. If the wrapped entity is not repeatable, the content is read into a buffer once and provided from there as often as required.

Since:
  4.0

Field Summary

Fields inherited from class org.apache.http.entity.HttpEntityWrapper
`wrappedEntity`

Constructor Summary
`BufferedHttpEntity(HttpEntity entity)` Creates a new buffered entity wrapper.

Method Summary
`InputStream` `getContent()` Returns a content stream of the entity.
`long` `getContentLength()` Tells the length of the content, if known.
`boolean` `isChunked()` Tells that this entity does not have to be chunked.
`boolean` `isRepeatable()` Tells that this entity is repeatable.
`boolean` `isStreaming()` Tells whether this entity depends on an underlying stream.
`void` `writeTo(OutputStream outstream)` Writes the entity content out to the output stream.

Methods inherited from class org.apache.http.entity.HttpEntityWrapper
`consumeContent, getContentEncoding, getContentType`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### BufferedHttpEntity

    public BufferedHttpEntity(HttpEntity entity)
                       throws IOException

  Creates a new buffered entity wrapper.

  Parameters:
    `entity` - the entity to wrap, not null
  Throws:
    `IllegalArgumentException` - if wrapped is null
    `IOException`

Method Detail

### getContentLength

    public long getContentLength()

  Description copied from interface: `HttpEntity`
  Tells the length of the content, if known.

  Specified by:
    `getContentLength` in interface `HttpEntity`
  Overrides:
    `getContentLength` in class `HttpEntityWrapper`
  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

    public InputStream getContent()
                           throws IOException

  Description copied from interface: `HttpEntity`
  Returns a content stream of the entity. `Repeatable` entities are expected to create a new instance of `InputStream` for each invocation of this method and therefore can be consumed multiple times. Entities that are not `repeatable` are expected to return the same `InputStream` instance and therefore may not be consumed more than once.

  IMPORTANT: Please note all entity implementations must ensure that all allocated resources are properly deallocated after the `InputStream.close()` method is invoked.

  Specified by:
    `getContent` in interface `HttpEntity`
  Overrides:
    `getContent` in class `HttpEntityWrapper`
  Returns:
    content stream of the entity.
  Throws:
    `IOException` - if the stream could not be created
  See Also:
    `HttpEntity.isRepeatable()`

### isChunked

    public boolean isChunked()

  Tells that this entity does not have to be chunked.

  Specified by:
    `isChunked` in interface `HttpEntity`
  Overrides:
    `isChunked` in class `HttpEntityWrapper`
  Returns:
    `false`

### isRepeatable

    public boolean isRepeatable()

  Tells that this entity is repeatable.

  Specified by:
    `isRepeatable` in interface `HttpEntity`
  Overrides:
    `isRepeatable` in class `HttpEntityWrapper`
  Returns:
    `true`

### writeTo

    public void writeTo(OutputStream outstream)
                 throws IOException

  Description copied from interface: `HttpEntity`
  Writes the entity content out to the output stream.

  IMPORTANT: Please note all entity implementations must ensure that all allocated resources are properly deallocated when this method returns.

  Specified by:
    `writeTo` in interface `HttpEntity`
  Overrides:
    `writeTo` in class `HttpEntityWrapper`
  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: `HttpEntity`
  Tells whether this entity depends on an underlying stream. Streamed entities that read data directly from the socket should return `true`. Self-contained entities should return `false`. Wrapping entities should delegate this call to the wrapped entity.

  Specified by:
    `isStreaming` in interface `HttpEntity`
  Overrides:
    `isStreaming` in class `HttpEntityWrapper`
  Returns:
    `true` if the entity content is streamed, `false` otherwise

Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.