Class ConnectExec

  • All Implemented Interfaces:
    ExecChainHandler

    @Contract(threading=STATELESS)
    @Internal
    public final class ConnectExec
    extends java.lang.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 Detail

      • 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
    • Constructor Detail

      • 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 Detail

      • execute

        public org.apache.hc.core5.http.ClassicHttpResponse execute​(org.apache.hc.core5.http.ClassicHttpRequest request,
                                                                    ExecChain.Scope scope,
                                                                    ExecChain chain)
                                                             throws java.io.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:
        java.io.IOException
        org.apache.hc.core5.http.HttpException
      • createTunnelToTarget

        private boolean createTunnelToTarget​(java.lang.String exchangeId,
                                             HttpRoute route,
                                             org.apache.hc.core5.http.HttpRequest request,
                                             ExecRuntime execRuntime,
                                             HttpClientContext context)
                                      throws org.apache.hc.core5.http.HttpException,
                                             java.io.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
        java.io.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