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, OUTPUT_BUFFER_SIZE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BasicHttpEntity()` Creates a new basic entity.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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

      `consumeContent, 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

Copyright © 2005–2013 The Apache Software Foundation. All rights reserved.