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
-