Class AbstractInputStreamContent (1.45.0)

public abstract class AbstractInputStreamContent implements HttpContent

Serializes HTTP request content from an input stream into an output stream.

The #type field is required. Subclasses should implement the #getLength(), #getInputStream(), and #retrySupported() for their specific type of input stream. By default, all content is read from the input stream. If instead you want to limit the maximum amount of content read from the input stream, you may use ByteStreams#limit(InputStream, long).

Implementations don't need to be thread-safe.

Inheritance

java.lang.Object > AbstractInputStreamContent

Implements

HttpContent

Constructors

AbstractInputStreamContent(String type)

public AbstractInputStreamContent(String type)
Parameter
Name Description
type String

Content type or null for none

Methods

getCloseInputStream()

public final boolean getCloseInputStream()

Returns whether the input stream should be closed at the end of #writeTo. Default is true.

Returns
Type Description
boolean

getInputStream()

public abstract InputStream getInputStream()

Return an input stream for the specific implementation type of AbstractInputStreamContent. If the specific implementation will return true for #retrySupported() this should be a factory function which will create a new InputStream from the source data whenever invoked.

Returns
Type Description
InputStream
Exceptions
Type Description
IOException

getType()

public String getType()

Returns the content type or null for none.

Returns
Type Description
String

setCloseInputStream(boolean closeInputStream)

public AbstractInputStreamContent setCloseInputStream(boolean closeInputStream)

Sets whether the input stream should be closed at the end of #writeTo. Default is true. Subclasses should override by calling super.

Parameter
Name Description
closeInputStream boolean
Returns
Type Description
AbstractInputStreamContent

setType(String type)

public AbstractInputStreamContent setType(String type)

Sets the content type or null for none. Subclasses should override by calling super.

Parameter
Name Description
type String
Returns
Type Description
AbstractInputStreamContent

writeTo(OutputStream out)

public void writeTo(OutputStream out)

Writes the byte content to the given output stream.

Implementations must not close the output stream, and instead should flush the output stream. Some callers may assume that the output stream has not been closed, and will fail to work if it has been closed.

Parameter
Name Description
out OutputStream
Exceptions
Type Description
IOException