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

@Deprecated(since="2021-05-27") public interface ContentProvider extends Iterable<ByteBuffer>
Deprecated.
The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.

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
    Modifier and Type
    Interface
    Description
    static interface 
    Deprecated.
    The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    Deprecated.
     
    default boolean
    Deprecated.
    Whether this ContentProvider can produce exactly the same content more than once.

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator
  • Method Details

    • 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 true only if the content can be produced more than once, which means that invocations to Iterable.iterator() must return a new, independent, iterator instance over the content.

      The HttpClient implementation 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