Interface ContentProvider
- All Superinterfaces:
Iterable<ByteBuffer>
- All Known Subinterfaces:
AsyncContentProvider,ContentProvider.Typed
- All Known Implementing Classes:
AbstractTypedContentProvider,ByteBufferContentProvider,BytesContentProvider,DeferredContentProvider,FormContentProvider,InputStreamContentProvider,MultiPartContentProvider,OutputStreamContentProvider,PathContentProvider,StringContentProvider
ContentProvider provides a source of request content.
Implementations should return an Iterator over the request content.
If the request content comes from a source that needs to be closed (for
example, an InputStream), then the iterator implementation class
must implement Closeable and will be closed when the request is
completed (either successfully or failed).
Applications should rely on utility classes such as ByteBufferContentProvider
or PathContentProvider.
ContentProvider provides a length of the content
it represents.
If the length is positive, it typically overrides any Content-Length
header set by applications; if the length is negative, it typically removes
any Content-Length header set by applications, resulting in chunked
content (i.e. Transfer-Encoding: chunked) being sent to the server.
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionlongDeprecated.default booleanDeprecated.Whether this ContentProvider can produce exactly the same content more than once.static Request.ContenttoRequestContent(ContentProvider provider) Deprecated.Converts a ContentProvider to aRequest.Content.Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
-
Method Details
-
toRequestContent
Deprecated.Converts a ContentProvider to a
Request.Content.- Parameters:
provider- the ContentProvider to convert- Returns:
- a
Request.Contentthat wraps the ContentProvider
-
getLength
long getLength()Deprecated.- Returns:
- the content length, if known, or -1 if the content length is unknown
-
isReproducible
default boolean isReproducible()Deprecated.Whether this ContentProvider can produce exactly the same content more than once.
Implementations should return
trueonly if the content can be produced more than once, which means that invocations toIterable.iterator()must return a new, independent, iterator instance over the content.The
HttpClientimplementation may use this method in particular cases where it detects that it is safe to retry a request that failed.- Returns:
- whether the content can be produced more than once
-
Request.Contentinstead, ortoRequestContent(ContentProvider)to convert ContentProvider toRequest.Content.