Class HttpRoute

    • Constructor Detail

      • HttpRoute

        public HttpRoute​(HttpHost target,
                         java.net.InetAddress local,
                         HttpHost[] proxies,
                         boolean secure,
                         RouteInfo.TunnelType tunnelled,
                         RouteInfo.LayerType layered)
        Creates a new route with all attributes specified explicitly.
        Parameters:
        target - the host to which to route
        local - the local address to route from, or null for the default
        proxies - the proxy chain to use, or null for a direct route
        secure - true if the route is (to be) secure, false otherwise
        tunnelled - the tunnel type of this route
        layered - the layering type of this route
      • HttpRoute

        public HttpRoute​(HttpHost target,
                         java.net.InetAddress local,
                         HttpHost proxy,
                         boolean secure,
                         RouteInfo.TunnelType tunnelled,
                         RouteInfo.LayerType layered)
        Creates a new route with at most one proxy.
        Parameters:
        target - the host to which to route
        local - the local address to route from, or null for the default
        proxy - the proxy to use, or null for a direct route
        secure - true if the route is (to be) secure, false otherwise
        tunnelled - true if the route is (to be) tunnelled via the proxy, false otherwise
        layered - true if the route includes a layered protocol, false otherwise
      • HttpRoute

        public HttpRoute​(HttpHost target,
                         java.net.InetAddress local,
                         boolean secure)
        Creates a new direct route. That is a route without a proxy.
        Parameters:
        target - the host to which to route
        local - the local address to route from, or null for the default
        secure - true if the route is (to be) secure, false otherwise
      • HttpRoute

        public HttpRoute​(HttpHost target)
        Creates a new direct insecure route.
        Parameters:
        target - the host to which to route
      • HttpRoute

        public HttpRoute​(HttpHost target,
                         java.net.InetAddress local,
                         HttpHost proxy,
                         boolean secure)
        Creates a new route through a proxy. When using this constructor, the proxy MUST be given. For convenience, it is assumed that a secure connection will be layered over a tunnel through the proxy.
        Parameters:
        target - the host to which to route
        local - the local address to route from, or null for the default
        proxy - the proxy to use
        secure - true if the route is (to be) secure, false otherwise
      • HttpRoute

        public HttpRoute​(HttpHost target,
                         HttpHost proxy)
        Creates a new plain route through a proxy.
        Parameters:
        target - the host to which to route
        proxy - the proxy to use
        Since:
        4.3
    • Method Detail

      • getTargetHost

        public final HttpHost getTargetHost()
        Description copied from interface: RouteInfo
        Obtains the target host.
        Specified by:
        getTargetHost in interface RouteInfo
        Returns:
        the target host
      • getLocalAddress

        public final java.net.InetAddress getLocalAddress()
        Description copied from interface: RouteInfo
        Obtains the local address to connect from.
        Specified by:
        getLocalAddress in interface RouteInfo
        Returns:
        the local address, or null
      • getLocalSocketAddress

        public final java.net.InetSocketAddress getLocalSocketAddress()
      • getHopCount

        public final int getHopCount()
        Description copied from interface: RouteInfo
        Obtains the number of hops in this route. A direct route has one hop. A route through a proxy has two hops. A route through a chain of n proxies has n+1 hops.
        Specified by:
        getHopCount in interface RouteInfo
        Returns:
        the number of hops in this route
      • getHopTarget

        public final HttpHost getHopTarget​(int hop)
        Description copied from interface: RouteInfo
        Obtains the target of a hop in this route. The target of the last hop is the target host, the target of previous hops is the respective proxy in the chain. For a route through exactly one proxy, target of hop 0 is the proxy and target of hop 1 is the target host.
        Specified by:
        getHopTarget in interface RouteInfo
        Parameters:
        hop - index of the hop for which to get the target, 0 for first
        Returns:
        the target of the given hop
      • getProxyHost

        public final HttpHost getProxyHost()
        Description copied from interface: RouteInfo
        Obtains the first proxy host.
        Specified by:
        getProxyHost in interface RouteInfo
        Returns:
        the first proxy in the proxy chain, or null if this route is direct
      • getTunnelType

        public final RouteInfo.TunnelType getTunnelType()
        Description copied from interface: RouteInfo
        Obtains the tunnel type of this route. If there is a proxy chain, only end-to-end tunnels are considered.
        Specified by:
        getTunnelType in interface RouteInfo
        Returns:
        the tunnelling type
      • isTunnelled

        public final boolean isTunnelled()
        Description copied from interface: RouteInfo
        Checks whether this route is tunnelled through a proxy. If there is a proxy chain, only end-to-end tunnels are considered.
        Specified by:
        isTunnelled in interface RouteInfo
        Returns:
        true if tunnelled end-to-end through at least one proxy, false otherwise
      • getLayerType

        public final RouteInfo.LayerType getLayerType()
        Description copied from interface: RouteInfo
        Obtains the layering type of this route. In the presence of proxies, only layering over an end-to-end tunnel is considered.
        Specified by:
        getLayerType in interface RouteInfo
        Returns:
        the layering type
      • isLayered

        public final boolean isLayered()
        Description copied from interface: RouteInfo
        Checks whether this route includes a layered protocol. In the presence of proxies, only layering over an end-to-end tunnel is considered.
        Specified by:
        isLayered in interface RouteInfo
        Returns:
        true if layered, false otherwise
      • isSecure

        public final boolean isSecure()
        Description copied from interface: RouteInfo
        Checks whether this route is secure.
        Specified by:
        isSecure in interface RouteInfo
        Returns:
        true if secure, false otherwise
      • equals

        public final boolean equals​(java.lang.Object obj)
        Compares this route to another.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - the object to compare with
        Returns:
        true if the argument is the same route, false
      • hashCode

        public final int hashCode()
        Generates a hash code for this route.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hash code
      • toString

        public final java.lang.String toString()
        Obtains a description of this route.
        Overrides:
        toString in class java.lang.Object
        Returns:
        a human-readable representation of this route
      • clone

        public java.lang.Object clone()
                               throws java.lang.CloneNotSupportedException
        Throws:
        java.lang.CloneNotSupportedException