Package org.eclipse.jetty.client
Class OutputStreamRequestContent
java.lang.Object
org.eclipse.jetty.io.content.OutputStreamContentSource
org.eclipse.jetty.client.OutputStreamRequestContent
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Request.Content
,Content.Source
public class OutputStreamRequestContent
extends OutputStreamContentSource
implements Request.Content
A Request.Content
that provides content asynchronously through an OutputStream
similar to AsyncRequestContent
.
OutputStreamRequestContent
can only be used in conjunction with
Request.send(Response.CompleteListener)
(and not with its blocking counterpart
Request.send()
) because it provides content asynchronously.
Content must be provided by writing to the output stream
that must be closed
when all content has been provided.
Example usage:
HttpClient httpClient = ...; // Use try-with-resources to autoclose the output stream. OutputStreamRequestContent content = new OutputStreamRequestContent(); try (OutputStream output = content.getOutputStream()) { httpClient.newRequest("localhost", 8080) .body(content) .send(new Response.CompleteListener() { @Override public void onComplete(Result result) { // Your logic here } }); // At a later time... output.write("some content".getBytes()); // Even later... output.write("more content".getBytes()); } // Implicit call to output.close().
-
Constructor Summary
-
Method Summary
Methods inherited from class org.eclipse.jetty.io.content.OutputStreamContentSource
close, demand, fail, getLength, getOutputStream, read
-
Constructor Details
-
OutputStreamRequestContent
public OutputStreamRequestContent() -
OutputStreamRequestContent
-
-
Method Details
-
getContentType
- Specified by:
getContentType
in interfaceRequest.Content
- Returns:
- the content type string such as "application/octet-stream" or
"application/json;charset=UTF8", or null if the
Content-Type
header must not be set
-