public class BasicRequestProducer extends Object implements AsyncRequestProducer
AsyncRequestProducer
that produces one fixed request
and relies on a AsyncEntityProducer
to generate request entity stream.Constructor and Description |
---|
BasicRequestProducer(HttpRequest request,
AsyncEntityProducer dataProducer) |
BasicRequestProducer(Method method,
HttpHost host,
String path) |
BasicRequestProducer(Method method,
HttpHost host,
String path,
AsyncEntityProducer dataProducer) |
BasicRequestProducer(Method method,
URI requestUri) |
BasicRequestProducer(Method method,
URI requestUri,
AsyncEntityProducer dataProducer) |
BasicRequestProducer(String method,
HttpHost host,
String path) |
BasicRequestProducer(String method,
HttpHost host,
String path,
AsyncEntityProducer dataProducer) |
BasicRequestProducer(String method,
URI requestUri) |
BasicRequestProducer(String method,
URI requestUri,
AsyncEntityProducer dataProducer) |
Modifier and Type | Method and Description |
---|---|
int |
available()
Returns the number of bytes immediately available for output.
|
void |
failed(Exception cause)
Triggered to signal a failure in data generation.
|
boolean |
isRepeatable()
Tests whether the producer can consistently produce the same content
after invocation of
ResourceHolder.releaseResources() . |
void |
produce(DataStreamChannel channel)
Triggered to signal the ability of the underlying data channel
to accept more data.
|
void |
releaseResources() |
void |
sendRequest(RequestChannel requestChannel,
HttpContext httpContext)
Triggered to signal the ability of the underlying request channel
to accept a request messages.
|
public BasicRequestProducer(HttpRequest request, AsyncEntityProducer dataProducer)
public BasicRequestProducer(String method, HttpHost host, String path, AsyncEntityProducer dataProducer)
public BasicRequestProducer(String method, URI requestUri, AsyncEntityProducer dataProducer)
public BasicRequestProducer(Method method, HttpHost host, String path, AsyncEntityProducer dataProducer)
public BasicRequestProducer(Method method, URI requestUri, AsyncEntityProducer dataProducer)
public void sendRequest(RequestChannel requestChannel, HttpContext httpContext) throws HttpException, IOException
AsyncRequestProducer
sendRequest
in interface AsyncRequestProducer
requestChannel
- the request channel capable to accepting a request message.httpContext
- the actual execution context.HttpException
- in case of an HTTP protocol violation.IOException
- in case of an I/O error.public int available()
AsyncDataProducer
Please note this method should return zero if the data producer
is unable to produce any more data, in which case
AsyncDataProducer.produce(DataStreamChannel)
method will not get triggered.
The producer can resume writing out data asynchronously
once more data becomes available or request output readiness events
with DataStreamChannel.requestOutput()
.
available
in interface AsyncDataProducer
AsyncDataProducer.produce(DataStreamChannel)
,
DataStreamChannel.requestOutput()
public void produce(DataStreamChannel channel) throws IOException
AsyncDataProducer
Please note this method gets triggered only if AsyncDataProducer.available()
returns a positive value.
produce
in interface AsyncDataProducer
channel
- the data channel capable of accepting more data.IOException
- in case of an I/O error.AsyncDataProducer.available()
public boolean isRepeatable()
AsyncRequestProducer
ResourceHolder.releaseResources()
.isRepeatable
in interface AsyncRequestProducer
public void failed(Exception cause)
AsyncRequestProducer
failed
in interface AsyncRequestProducer
cause
- the cause of the failure.public void releaseResources()
releaseResources
in interface ResourceHolder
Copyright © 2005–2021 The Apache Software Foundation. All rights reserved.