Top Description Fields Constructors Methods
org.apache.http.impl.execchain

public Class MainClientExec

extends Object
implements ClientExecChain
Class Inheritance
All Implemented Interfaces
org.apache.http.impl.execchain.ClientExecChain
Annotations
@SuppressWarnings:deprecation
@Contract
threading:IMMUTABLE_CONDITIONAL
Imports
java.io.IOException, .InterruptedIOException, java.util.concurrent.ExecutionException, .TimeUnit, org.apache.commons.logging.Log, .LogFactory, org.apache.http.ConnectionReuseStrategy, .HttpClientConnection, .HttpEntity, .HttpEntityEnclosingRequest, .HttpException, .HttpHost, .HttpRequest, .HttpResponse, org.apache.http.annotation.Contract, .ThreadingBehavior, org.apache.http.auth.AUTH, .AuthProtocolState, .AuthState, org.apache.http.client.AuthenticationStrategy, .NonRepeatableRequestException, .UserTokenHandler, org.apache.http.client.config.RequestConfig, org.apache.http.client.methods.CloseableHttpResponse, .HttpExecutionAware, .HttpRequestWrapper, org.apache.http.client.protocol.HttpClientContext, org.apache.http.conn.ConnectionKeepAliveStrategy, .ConnectionRequest, .HttpClientConnectionManager, org.apache.http.conn.routing.BasicRouteDirector, .HttpRoute, .HttpRouteDirector, .RouteTracker, org.apache.http.entity.BufferedHttpEntity, org.apache.http.impl.auth.HttpAuthenticator, org.apache.http.impl.conn.ConnectionShutdownException, org.apache.http.message.BasicHttpRequest, org.apache.http.protocol.HttpCoreContext, .HttpProcessor, .HttpRequestExecutor, .ImmutableHttpProcessor, .RequestTargetHost, org.apache.http.util.Args, .EntityUtils

The last request executor in the HTTP request execution chain that is responsible for execution of request / response exchanges with the opposite endpoint. This executor will automatically retry the request in case of an authentication challenge by an intermediate proxy or by the target server.
Since
4.3

Field Summary

Modifier and TypeField and Description
private final HttpAuthenticator
private final HttpClientConnectionManager
private final ConnectionKeepAliveStrategy
private final Log
private final AuthenticationStrategy
private final HttpProcessor
private final HttpRequestExecutor
private final ConnectionReuseStrategy
private final HttpRouteDirector
private final AuthenticationStrategy
private final UserTokenHandler

Constructor Summary

AccessConstructor and Description
public
MainClientExec(final HttpRequestExecutor requestExecutor, final HttpClientConnectionManager connManager, final ConnectionReuseStrategy reuseStrategy, final ConnectionKeepAliveStrategy keepAliveStrategy, final HttpProcessor proxyHttpProcessor, final AuthenticationStrategy targetAuthStrategy, final AuthenticationStrategy proxyAuthStrategy, final UserTokenHandler userTokenHandler)

public
MainClientExec(final HttpRequestExecutor requestExecutor, final HttpClientConnectionManager connManager, final ConnectionReuseStrategy reuseStrategy, final ConnectionKeepAliveStrategy keepAliveStrategy, final AuthenticationStrategy targetAuthStrategy, final AuthenticationStrategy proxyAuthStrategy, final UserTokenHandler userTokenHandler)

Method Summary

Modifier and TypeMethod and Description
private boolean
createTunnelToProxy(final HttpRoute route, final int hop, final HttpClientContext context)

Creates a tunnel to an intermediate proxy.

private boolean
createTunnelToTarget(final AuthState proxyAuthState, final HttpClientConnection managedConn, final HttpRoute route, final HttpRequest request, final HttpClientContext context)

Creates a tunnel to the target server.

pack-priv void
establishRoute(final AuthState proxyAuthState, final HttpClientConnection managedConn, final HttpRoute route, final HttpRequest request, final HttpClientContext context)

Establishes the target route.

public CloseableHttpResponse
execute(final HttpRoute
connection route.
route
,
final HttpRequestWrapper
current request.
request
,
final HttpClientContext
current HTTP context.
context
,
final HttpExecutionAware
receiver of notifications of blocking I/O operations.
execAware
)

Implements org.apache.http.impl.execchain.ClientExecChain.execute.

Executes th request either by transmitting it to the target server or by passing it onto the next executor in the request execution chain.
private boolean
needAuthentication(final AuthState targetAuthState, final AuthState proxyAuthState, final HttpRoute route, final HttpResponse response, final HttpClientContext context)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

authenticatorback to summary
private final HttpAuthenticator authenticator
connManagerback to summary
private final HttpClientConnectionManager connManager
keepAliveStrategyback to summary
private final ConnectionKeepAliveStrategy keepAliveStrategy
logback to summary
private final Log log
proxyAuthStrategyback to summary
private final AuthenticationStrategy proxyAuthStrategy
proxyHttpProcessorback to summary
private final HttpProcessor proxyHttpProcessor
requestExecutorback to summary
private final HttpRequestExecutor requestExecutor
reuseStrategyback to summary
private final ConnectionReuseStrategy reuseStrategy
routeDirectorback to summary
private final HttpRouteDirector routeDirector
targetAuthStrategyback to summary
private final AuthenticationStrategy targetAuthStrategy
userTokenHandlerback to summary
private final UserTokenHandler userTokenHandler

Constructor Detail

MainClientExecback to summary
public MainClientExec(final HttpRequestExecutor requestExecutor, final HttpClientConnectionManager connManager, final ConnectionReuseStrategy reuseStrategy, final ConnectionKeepAliveStrategy keepAliveStrategy, final HttpProcessor proxyHttpProcessor, final AuthenticationStrategy targetAuthStrategy, final AuthenticationStrategy proxyAuthStrategy, final UserTokenHandler userTokenHandler)
Since
4.4
MainClientExecback to summary
public MainClientExec(final HttpRequestExecutor requestExecutor, final HttpClientConnectionManager connManager, final ConnectionReuseStrategy reuseStrategy, final ConnectionKeepAliveStrategy keepAliveStrategy, final AuthenticationStrategy targetAuthStrategy, final AuthenticationStrategy proxyAuthStrategy, final UserTokenHandler userTokenHandler)

Method Detail

createTunnelToProxyback to summary
private boolean createTunnelToProxy(final HttpRoute route, final int hop, final HttpClientContext context) throws HttpException

Creates a tunnel to an intermediate proxy. This method is not implemented in this class. It just throws an exception here.

createTunnelToTargetback to summary
private boolean createTunnelToTarget(final AuthState proxyAuthState, final HttpClientConnection managedConn, final HttpRoute route, final HttpRequest request, final HttpClientContext context) throws HttpException, IOException

Creates a tunnel to the target server. The connection must be established to the (last) proxy. A CONNECT request for tunnelling through the proxy will be created and sent, the response received and checked. This method does not update the connection with information about the tunnel, that is left to the caller.

establishRouteback to summary
pack-priv void establishRoute(final AuthState proxyAuthState, final HttpClientConnection managedConn, final HttpRoute route, final HttpRequest request, final HttpClientContext context) throws HttpException, IOException

Establishes the target route.

executeback to summary
public CloseableHttpResponse execute(final HttpRoute route, final HttpRequestWrapper request, final HttpClientContext context, final HttpExecutionAware execAware) throws IOException, HttpException

Implements org.apache.http.impl.execchain.ClientExecChain.execute.

Doc from org.apache.http.impl.execchain.ClientExecChain.execute.

Executes th request either by transmitting it to the target server or by passing it onto the next executor in the request execution chain.

Parameters
route:HttpRoute

connection route.

request:HttpRequestWrapper

current request.

context:HttpClientContext

current HTTP context.

execAware:HttpExecutionAware

receiver of notifications of blocking I/O operations.

Returns:CloseableHttpResponse

HTTP response either received from the opposite endpoint or generated locally.

Annotations
@Override
Exceptions
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).
needAuthenticationback to summary
private boolean needAuthentication(final AuthState targetAuthState, final AuthState proxyAuthState, final HttpRoute route, final HttpResponse response, final HttpClientContext context)