## org.apache.http.entity
Class BasicHttpEntity

    java.lang.Object
      org.apache.http.entity.AbstractHttpEntity
          org.apache.http.entity.BasicHttpEntity

All Implemented Interfaces:
  HttpEntity

Direct Known Subclasses:
  ContentBufferEntity

    @NotThreadSafe
    public class BasicHttpEntity

extends AbstractHttpEntity

A generic streamed, non-repeatable entity that obtains its content from an `InputStream`.

Since:
  4.0

Field Summary

Fields inherited from class org.apache.http.entity.AbstractHttpEntity
`chunked, contentEncoding, contentType`

Constructor Summary
`BasicHttpEntity()` Creates a new basic entity.

Method Summary
`void` `consumeContent()` Deprecated. (4.1) Either use `getContent()` and call `InputStream.close()` on that; otherwise call `writeTo(OutputStream)` which is required to free the resources.
`InputStream` `getContent()` Obtains the content, once only.
`long` `getContentLength()` Tells the length of the content, if known.
`boolean` `isRepeatable()` Tells that this entity is not repeatable.
`boolean` `isStreaming()` Tells whether this entity depends on an underlying stream.
`void` `setContent(InputStream instream)` Specifies the content.
`void` `setContentLength(long len)` Specifies the length of the content.
`void` `writeTo(OutputStream outstream)` Writes the entity content out to the output stream.

Methods inherited from class org.apache.http.entity.AbstractHttpEntity
`getContentEncoding, getContentType, isChunked, setChunked, setContentEncoding, setContentEncoding, setContentType, setContentType`

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

Constructor Detail

### BasicHttpEntity

    public BasicHttpEntity()

  Creates a new basic entity. The content is initially missing, the content length is set to a negative number.

Method Detail

### getContentLength

    public long getContentLength()

  Description copied from interface: `HttpEntity`
  Tells 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

    public InputStream getContent()
                           throws IllegalStateException

  Obtains the content, once only.

  Returns:
    the content, if this is the first call to this method since `setContent` has been called
  Throws:
    `IllegalStateException` - if the content has not been provided
  See Also:
    `HttpEntity.isRepeatable()`

### isRepeatable

    public boolean isRepeatable()

  Tells that this entity is not repeatable.

  Returns:
    `false`

### setContentLength

    public void setContentLength(long len)

  Specifies the length of the content.

  Parameters:
    `len` - the number of bytes in the content, or a negative number to indicate an unknown length

### setContent

    public void setContent(InputStream instream)

  Specifies the content.

  Parameters:
    `instream` - the stream to return with the next call to `getContent`

### 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.

  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.

  Returns:
    `true` if the entity content is streamed, `false` otherwise

### consumeContent

    @Deprecated
    public void consumeContent()
                        throws IOException

  Deprecated. (4.1) Either use `getContent()` and call `InputStream.close()` on that; otherwise call `writeTo(OutputStream)` which is required to free the resources.

  Closes the content InputStream.

  Specified by:
    `consumeContent` in interface `HttpEntity`
  Overrides:
    `consumeContent` in class `AbstractHttpEntity`
  Throws:
    `IOException` - if an I/O error occurs.
  See Also:
    `and #writeTo(OutputStream)`

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