public final class InputStreamContent extends AbstractInputStreamContent
AbstractInputStreamContent
that simply handles the transfer of
data from an input stream to an output stream. This should only be used for streams that can not
be re-opened and retried. If you have a stream that it is possible to recreate please create a
new subclass of AbstractInputStreamContent
.
The input stream is guaranteed to be closed at the end of AbstractInputStreamContent.writeTo(OutputStream)
.
Sample use with a URL:
private static void setRequestJpegContent(HttpRequest request, URL jpegUrl) throws IOException {
request.setContent(new InputStreamContent("image/jpeg", jpegUrl.openStream()));
}
Implementation is not thread-safe.
Constructor and Description |
---|
InputStreamContent(String type,
InputStream inputStream) |
Modifier and Type | Method and Description |
---|---|
InputStream |
getInputStream()
Return an input stream for the specific implementation type of
AbstractInputStreamContent . |
long |
getLength()
Returns the content length or less than zero if not known.
|
boolean |
retrySupported()
Returns whether or not retry is supported on this content type.
|
InputStreamContent |
setCloseInputStream(boolean closeInputStream)
Sets whether the input stream should be closed at the end of
AbstractInputStreamContent.writeTo(java.io.OutputStream) . |
InputStreamContent |
setLength(long length)
Sets the content length or less than zero if not known.
|
InputStreamContent |
setRetrySupported(boolean retrySupported)
Sets whether or not retry is supported.
|
InputStreamContent |
setType(String type)
Sets the content type or
null for none. |
getCloseInputStream, getType, writeTo
public InputStreamContent(String type, InputStream inputStream)
type
- Content type or null
for noneinputStream
- Input stream to read frompublic long getLength()
HttpContent
public boolean retrySupported()
HttpContent
public InputStreamContent setRetrySupported(boolean retrySupported)
false
.
Should be set to true
if getInputStream()
is called to reset to the original
position of the input stream.
public InputStream getInputStream()
AbstractInputStreamContent
AbstractInputStreamContent
. If the specific implementation will return true
for HttpContent.retrySupported()
this should be a factory function which will create a new InputStream
from the source data whenever invoked.getInputStream
in class AbstractInputStreamContent
public InputStreamContent setType(String type)
AbstractInputStreamContent
null
for none. Subclasses should override by calling super.setType
in class AbstractInputStreamContent
public InputStreamContent setCloseInputStream(boolean closeInputStream)
AbstractInputStreamContent
AbstractInputStreamContent.writeTo(java.io.OutputStream)
. Default is
true
. Subclasses should override by calling super.setCloseInputStream
in class AbstractInputStreamContent
public InputStreamContent setLength(long length)
Defaults to -1
.
Copyright © 2011–2023 Google. All rights reserved.