Package org.apache.http.conn.routing
Class HttpRoute
- java.lang.Object
-
- org.apache.http.conn.routing.HttpRoute
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.http.conn.routing.RouteInfo
RouteInfo.LayerType, RouteInfo.TunnelType
-
-
Constructor Summary
Constructors Constructor Description HttpRoute(HttpHost target)
Creates a new direct insecure route.HttpRoute(HttpHost target, java.net.InetAddress local, boolean secure)
Creates a new direct route.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.HttpRoute(HttpHost target, java.net.InetAddress local, HttpHost proxy, boolean secure)
Creates a new route through a proxy.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.HttpRoute(HttpHost target, HttpHost proxy)
Creates a new plain route through a proxy.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone()
boolean
equals(java.lang.Object obj)
Compares this route to another.int
getHopCount()
Obtains the number of hops in this route.HttpHost
getHopTarget(int hop)
Obtains the target of a hop in this route.RouteInfo.LayerType
getLayerType()
Obtains the layering type of this route.java.net.InetAddress
getLocalAddress()
Obtains the local address to connect from.java.net.InetSocketAddress
getLocalSocketAddress()
HttpHost
getProxyHost()
Obtains the first proxy host.HttpHost
getTargetHost()
Obtains the target host.RouteInfo.TunnelType
getTunnelType()
Obtains the tunnel type of this route.int
hashCode()
Generates a hash code for this route.boolean
isLayered()
Checks whether this route includes a layered protocol.boolean
isSecure()
Checks whether this route is secure.boolean
isTunnelled()
Checks whether this route is tunnelled through a proxy.java.lang.String
toString()
Obtains a description of this route.
-
-
-
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 routelocal
- the local address to route from, ornull
for the defaultproxies
- the proxy chain to use, ornull
for a direct routesecure
-true
if the route is (to be) secure,false
otherwisetunnelled
- the tunnel type of this routelayered
- 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 routelocal
- the local address to route from, ornull
for the defaultproxy
- the proxy to use, ornull
for a direct routesecure
-true
if the route is (to be) secure,false
otherwisetunnelled
-true
if the route is (to be) tunnelled via the proxy,false
otherwiselayered
-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 routelocal
- the local address to route from, ornull
for the defaultsecure
-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, theproxy
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 routelocal
- the local address to route from, ornull
for the defaultproxy
- the proxy to usesecure
-true
if the route is (to be) secure,false
otherwise
-
-
Method Detail
-
getTargetHost
public final HttpHost getTargetHost()
Description copied from interface:RouteInfo
Obtains the target host.- Specified by:
getTargetHost
in interfaceRouteInfo
- 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 interfaceRouteInfo
- 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 interfaceRouteInfo
- 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 thetarget 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 interfaceRouteInfo
- 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 interfaceRouteInfo
- 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 interfaceRouteInfo
- 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 interfaceRouteInfo
- 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 interfaceRouteInfo
- 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.
-
isSecure
public final boolean isSecure()
Description copied from interface:RouteInfo
Checks whether this route is secure.
-
equals
public final boolean equals(java.lang.Object obj)
Compares this route to another.- Overrides:
equals
in classjava.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 classjava.lang.Object
- Returns:
- the hash code
-
toString
public final java.lang.String toString()
Obtains a description of this route.- Overrides:
toString
in classjava.lang.Object
- Returns:
- a human-readable representation of this route
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
- Throws:
java.lang.CloneNotSupportedException
-
-