Package org.apache.http.impl.execchain
Class ProtocolExec
java.lang.Object
org.apache.http.impl.execchain.ProtocolExec
- All Implemented Interfaces:
ClientExecChain
@Contract(threading=IMMUTABLE_CONDITIONAL)
public class ProtocolExec
extends Object
implements ClientExecChain
Request executor in the request execution chain that is responsible
for implementation of HTTP specification requirements.
Internally this executor relies on a
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.
- Since:
- 4.3
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.apache.http.protocol.HttpProcessor
private final org.apache.commons.logging.Log
private final ClientExecChain
-
Constructor Summary
ConstructorsConstructorDescriptionProtocolExec
(ClientExecChain requestExecutor, org.apache.http.protocol.HttpProcessor httpProcessor) -
Method Summary
Modifier and TypeMethodDescriptionexecute
(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, boolean normalizeUri)
-
Field Details
-
log
private final org.apache.commons.logging.Log log -
requestExecutor
-
httpProcessor
private final org.apache.http.protocol.HttpProcessor httpProcessor
-
-
Constructor Details
-
ProtocolExec
public ProtocolExec(ClientExecChain requestExecutor, org.apache.http.protocol.HttpProcessor httpProcessor)
-
-
Method Details
-
rewriteRequestURI
void rewriteRequestURI(HttpRequestWrapper request, HttpRoute route, boolean normalizeUri) throws org.apache.http.ProtocolException - Throws:
org.apache.http.ProtocolException
-
execute
public CloseableHttpResponse execute(HttpRoute route, HttpRequestWrapper request, HttpClientContext context, HttpExecutionAware execAware) throws IOException, org.apache.http.HttpException Description copied from interface:ClientExecChain
Executes th request either by transmitting it to the target server or by passing it onto the next executor in the request execution chain.- Specified by:
execute
in interfaceClientExecChain
- Parameters:
route
- connection route.request
- current request.context
- current HTTP context.execAware
- receiver of notifications of blocking I/O operations.- Returns:
- HTTP response either received from the opposite endpoint or generated locally.
- Throws:
IOException
- in case of a I/O error. (this type of exceptions are potentially recoverable).org.apache.http.HttpException
- in case of an HTTP protocol error (usually this type of exceptions are non-recoverable).
-