Class ConnectExec

java.lang.Object
org.apache.hc.client5.http.impl.classic.ConnectExec
All Implemented Interfaces:
ExecChainHandler

@Contract(threading=STATELESS) @Internal public final class ConnectExec extends Object implements ExecChainHandler
Request execution handler in the classic request execution chain that is responsible for establishing connection to the target origin server as specified by the current connection route.
Since:
5.0
  • Field Details

    • LOG

      private static final org.slf4j.Logger LOG
    • reuseStrategy

      private final org.apache.hc.core5.http.ConnectionReuseStrategy reuseStrategy
    • proxyHttpProcessor

      private final org.apache.hc.core5.http.protocol.HttpProcessor proxyHttpProcessor
    • proxyAuthStrategy

      private final AuthenticationStrategy proxyAuthStrategy
    • authenticator

      private final HttpAuthenticator authenticator
    • authCacheKeeper

      private final AuthCacheKeeper authCacheKeeper
    • routeDirector

      private final HttpRouteDirector routeDirector
  • Constructor Details

    • ConnectExec

      public ConnectExec(org.apache.hc.core5.http.ConnectionReuseStrategy reuseStrategy, org.apache.hc.core5.http.protocol.HttpProcessor proxyHttpProcessor, AuthenticationStrategy proxyAuthStrategy, SchemePortResolver schemePortResolver, boolean authCachingDisabled)
  • Method Details

    • execute

      public org.apache.hc.core5.http.ClassicHttpResponse execute(org.apache.hc.core5.http.ClassicHttpRequest request, ExecChain.Scope scope, ExecChain chain) throws IOException, org.apache.hc.core5.http.HttpException
      Description copied from interface: ExecChainHandler
      Executes the actual HTTP request. The handler can choose to return a response message or delegate request execution to the next element in the execution chain.
      Specified by:
      execute in interface ExecChainHandler
      Parameters:
      request - the actual request.
      scope - the execution scope .
      chain - the next element in the request execution chain.
      Throws:
      IOException
      org.apache.hc.core5.http.HttpException
    • createTunnelToTarget

      private boolean createTunnelToTarget(String exchangeId, HttpRoute route, org.apache.hc.core5.http.HttpRequest request, ExecRuntime execRuntime, HttpClientContext context) throws org.apache.hc.core5.http.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 processChallenge the connection with information about the tunnel, that is left to the caller.
      Throws:
      org.apache.hc.core5.http.HttpException
      IOException
    • createTunnelToProxy

      private boolean createTunnelToProxy(HttpRoute route, int hop, HttpClientContext context) throws org.apache.hc.core5.http.HttpException
      Creates a tunnel to an intermediate proxy. This method is not implemented in this class. It just throws an exception here.
      Throws:
      org.apache.hc.core5.http.HttpException