@Contract(threading=IMMUTABLE_CONDITIONAL) public class ProtocolExec extends Object implements ClientExecChain
HttpProcessor
to populate
requisite HTTP request headers, process HTTP response headers and update
session state in HttpClientContext
.
Further responsibilities such as communication with the opposite endpoint is delegated to the next executor in the request execution chain.
Modifier and Type | Field and Description |
---|---|
private HttpProcessor |
httpProcessor |
private org.apache.commons.logging.Log |
log |
private ClientExecChain |
requestExecutor |
Constructor and Description |
---|
ProtocolExec(ClientExecChain requestExecutor,
HttpProcessor httpProcessor) |
Modifier and Type | Method and Description |
---|---|
CloseableHttpResponse |
execute(HttpRoute route,
HttpRequestWrapper request,
HttpClientContext context,
HttpExecutionAware execAware)
Executes th request either by transmitting it to the target server or
by passing it onto the next executor in the request execution chain.
|
(package private) void |
rewriteRequestURI(HttpRequestWrapper request,
HttpRoute route) |
private final org.apache.commons.logging.Log log
private final ClientExecChain requestExecutor
private final HttpProcessor httpProcessor
public ProtocolExec(ClientExecChain requestExecutor, HttpProcessor httpProcessor)
void rewriteRequestURI(HttpRequestWrapper request, HttpRoute route) throws ProtocolException
ProtocolException
public CloseableHttpResponse execute(HttpRoute route, HttpRequestWrapper request, HttpClientContext context, HttpExecutionAware execAware) throws IOException, HttpException
ClientExecChain
execute
in interface ClientExecChain
route
- connection route.request
- current request.context
- current HTTP context.execAware
- receiver of notifications of blocking I/O operations.IOException
- in case of a I/O error.
(this type of exceptions are potentially recoverable).HttpException
- in case of an HTTP protocol error
(usually this type of exceptions are non-recoverable).WebARTS Library Licensed Under the GNU - General Public License. Other Libraries licensed under their respective Open Source Licenses