## org.apache.http.nio.entity
Class NStringEntity

    java.lang.Object
      org.apache.http.entity.AbstractHttpEntity
          org.apache.http.nio.entity.NStringEntity

All Implemented Interfaces:
  Closeable, HttpEntity, HttpAsyncContentProducer, ProducingNHttpEntity

    @NotThreadSafe
    public class NStringEntity

extends AbstractHttpEntity
implements HttpAsyncContentProducer, ProducingNHttpEntity

A simple, self contained, repeatable non-blocking entity that retrieves its content from a `String` object.

Since:
  4.0

Field Summary
`protected ByteBuffer` `buffer` Deprecated. (4.2)
`protected byte[]` `content` Deprecated. (4.2)

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

Constructor Summary
`NStringEntity(String s)` Creates a NStringEntity with the specified content.
`NStringEntity(String s, Charset charset)` Creates a NStringEntity with the specified content and charset.
`NStringEntity(String s, ContentType contentType)` Creates a NStringEntity with the specified content and content type.
`NStringEntity(String s, String charset)` Creates a NStringEntity with the specified content and charset.

Method Summary
`void` `close()`
`void` `finish()` Deprecated. (4.2) use `close()`
`InputStream` `getContent()` Returns a content stream of the entity.
`long` `getContentLength()` Tells the length of the content, if known.
`boolean` `isRepeatable()` Tells if the entity is capable of producing its data more than once.
`boolean` `isStreaming()` Tells whether this entity depends on an underlying stream.
`void` `produceContent(ContentEncoder encoder, IOControl ioctrl)` Invoked to write out a chunk of content to the `ContentEncoder`.
`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`

Methods inherited from interface org.apache.http.HttpEntity
`consumeContent, getContentEncoding, getContentType, isChunked`

Field Detail

### content

    @Deprecated
    protected final byte[] content

  Deprecated. (4.2)

### buffer

    @Deprecated
    protected final ByteBuffer buffer

  Deprecated. (4.2)

Constructor Detail

### NStringEntity

    public NStringEntity(String s,
                         ContentType contentType)

  Creates a NStringEntity with the specified content and content type.

  Parameters:
    `s` - content to be used. Not `null`.
    `contentType` - content type to be used. May be `null`, in which case `ContentType.TEXT_PLAIN` is assumed.
  Throws:
    `IllegalArgumentException` - if the string parameter is null
  Since:
    4.2

### NStringEntity

    public NStringEntity(String s,
                         String charset)
                  throws UnsupportedEncodingException

  Creates a NStringEntity with the specified content and charset. The MIME type defaults to "text/plain".

  Parameters:
    `s` - content to be used. Not `null`.
    `charset` - character set to be used. May be `null`, in which case the default is `HTTP.DEF_CONTENT_CHARSET` is assumed
  Throws:
    `IllegalArgumentException` - if the string parameter is null
    `UnsupportedEncodingException` - if the charset is not supported.

### NStringEntity

    public NStringEntity(String s,
                         Charset charset)

  Creates a NStringEntity with the specified content and charset. The MIME type defaults to "text/plain".

  Parameters:
    `s` - content to be used. Not `null`.
    `charset` - character set to be used. May be `null`, in which case the default is `HTTP.DEF_CONTENT_CHARSET` is assumed
  Throws:
    `IllegalArgumentException` - if the string parameter is null
  Since:
    4.2

### NStringEntity

    public NStringEntity(String s)
                  throws UnsupportedEncodingException

  Creates a NStringEntity with the specified content. The content type defaults to `ContentType.TEXT_PLAIN`.

  Parameters:
    `s` - content to be used. Not `null`.
  Throws:
    `IllegalArgumentException` - if the string parameter is null
    `UnsupportedEncodingException` - if the default HTTP charset is not supported.

Method Detail

### isRepeatable

    public boolean isRepeatable()

  Description copied from interface: `HttpEntity`
  Tells if the entity is capable of producing 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.

  Specified by:
    `isRepeatable` in interface `HttpEntity`
  Specified by:
    `isRepeatable` in interface `HttpAsyncContentProducer`
  Returns:
    true if the entity is repeatable, false otherwise.

### getContentLength

    public long getContentLength()

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

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

### close

    public void close()

  Specified by:
    `close` in interface `Closeable`
  Since:
    4.2

### finish

    public void finish()

  Deprecated. (4.2) use `close()`

  Notification that any resources allocated for writing can be released.

  Specified by:
    `finish` in interface `ProducingNHttpEntity`

### produceContent

    public void produceContent(ContentEncoder encoder,
                               IOControl ioctrl)
                        throws IOException

  Description copied from interface: `HttpAsyncContentProducer`
  Invoked to write out a chunk of content to the `ContentEncoder`. The `IOControl` interface can be used to suspend output event notifications if the entity is temporarily unable to produce more content.

  When all content is finished, the producer MUST call `ContentEncoder.complete()`. Failure to do so may cause the entity to be incorrectly delimited.

  Please note that the `ContentEncoder` object is not thread-safe and should only be used within the context of this method call. The `IOControl` object can be shared and used on other thread to resume output event notifications when more content is made available.

  Specified by:
    `produceContent` in interface `HttpAsyncContentProducer`
  Specified by:
    `produceContent` in interface `ProducingNHttpEntity`
  Parameters:
    `encoder` - content encoder.
    `ioctrl` - I/O control of the underlying connection.
  Throws:
    `IOException`

### 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`
  Returns:
    `true` if the entity content is streamed, `false` otherwise

### getContent

    public InputStream getContent()

  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`
  Returns:
    content stream of the entity.
  See Also:
    `HttpEntity.isRepeatable()`

### 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`
  Parameters:
    `outstream` - the output stream to write entity content to
  Throws:
    `IOException` - if an I/O error occurs

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