Package org.apache.http.conn.routing
Class HttpRoute
java.lang.Object
org.apache.http.conn.routing.HttpRoute
@Contract(threading=IMMUTABLE)
public final class HttpRoute
extends Object
implements RouteInfo, Cloneable
The route for a request.
- Since:
- 4.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.http.conn.routing.RouteInfo
RouteInfo.LayerType, RouteInfo.TunnelType -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new direct insecure route.HttpRoute(HttpHost target, InetAddress local, boolean secure) Creates a new direct route.HttpRoute(HttpHost target, InetAddress local, HttpHost[] proxies, boolean secure, RouteInfo.TunnelType tunnelled, RouteInfo.LayerType layered) Creates a new route with all attributes specified explicitly.HttpRoute(HttpHost target, InetAddress local, HttpHost proxy, boolean secure) Creates a new route through a proxy.HttpRoute(HttpHost target, InetAddress local, HttpHost proxy, boolean secure, RouteInfo.TunnelType tunnelled, RouteInfo.LayerType layered) Creates a new route with at most one proxy.Creates a new plain route through a proxy. -
Method Summary
Modifier and TypeMethodDescriptionclone()final booleanCompares this route to another.final intObtains the number of hops in this route.final HttpHostgetHopTarget(int hop) Obtains the target of a hop in this route.final RouteInfo.LayerTypeObtains the layering type of this route.final InetAddressObtains the local address to connect from.final InetSocketAddressfinal HttpHostObtains the first proxy host.final HttpHostObtains the target host.final RouteInfo.TunnelTypeObtains the tunnel type of this route.final inthashCode()Generates a hash code for this route.final booleanChecks whether this route includes a layered protocol.final booleanisSecure()Checks whether this route is secure.final booleanChecks whether this route is tunnelled through a proxy.final StringtoString()Obtains a description of this route.
-
Constructor Details
-
HttpRoute
public HttpRoute(HttpHost target, 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, ornullfor the defaultproxies- the proxy chain to use, ornullfor a direct routesecure-trueif the route is (to be) secure,falseotherwisetunnelled- the tunnel type of this routelayered- the layering type of this route
-
HttpRoute
public HttpRoute(HttpHost target, 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, ornullfor the defaultproxy- the proxy to use, ornullfor a direct routesecure-trueif the route is (to be) secure,falseotherwisetunnelled-trueif the route is (to be) tunnelled via the proxy,falseotherwiselayered-trueif the route includes a layered protocol,falseotherwise
-
HttpRoute
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, ornullfor the defaultsecure-trueif the route is (to be) secure,falseotherwise
-
HttpRoute
Creates a new direct insecure route.- Parameters:
target- the host to which to route
-
HttpRoute
Creates a new route through a proxy. When using this constructor, theproxyMUST 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, ornullfor the defaultproxy- the proxy to usesecure-trueif the route is (to be) secure,falseotherwise
-
HttpRoute
Creates a new plain route through a proxy.- Parameters:
target- the host to which to routeproxy- the proxy to use- Since:
- 4.3
-
-
Method Details
-
getTargetHost
Description copied from interface:RouteInfoObtains the target host.- Specified by:
getTargetHostin interfaceRouteInfo- Returns:
- the target host
-
getLocalAddress
Description copied from interface:RouteInfoObtains the local address to connect from.- Specified by:
getLocalAddressin interfaceRouteInfo- Returns:
- the local address,
or
null
-
getLocalSocketAddress
-
getHopCount
public final int getHopCount()Description copied from interface:RouteInfoObtains 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:
getHopCountin interfaceRouteInfo- Returns:
- the number of hops in this route
-
getHopTarget
Description copied from interface:RouteInfoObtains 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:
getHopTargetin interfaceRouteInfo- Parameters:
hop- index of the hop for which to get the target, 0 for first- Returns:
- the target of the given hop
-
getProxyHost
Description copied from interface:RouteInfoObtains the first proxy host.- Specified by:
getProxyHostin interfaceRouteInfo- Returns:
- the first proxy in the proxy chain, or
nullif this route is direct
-
getTunnelType
Description copied from interface:RouteInfoObtains the tunnel type of this route. If there is a proxy chain, only end-to-end tunnels are considered.- Specified by:
getTunnelTypein interfaceRouteInfo- Returns:
- the tunnelling type
-
isTunnelled
public final boolean isTunnelled()Description copied from interface:RouteInfoChecks whether this route is tunnelled through a proxy. If there is a proxy chain, only end-to-end tunnels are considered.- Specified by:
isTunnelledin interfaceRouteInfo- Returns:
trueif tunnelled end-to-end through at least one proxy,falseotherwise
-
getLayerType
Description copied from interface:RouteInfoObtains the layering type of this route. In the presence of proxies, only layering over an end-to-end tunnel is considered.- Specified by:
getLayerTypein interfaceRouteInfo- Returns:
- the layering type
-
isLayered
public final boolean isLayered()Description copied from interface:RouteInfoChecks 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:RouteInfoChecks whether this route is secure. -
equals
Compares this route to another. -
hashCode
public final int hashCode()Generates a hash code for this route. -
toString
Obtains a description of this route. -
clone
- Throws:
CloneNotSupportedException
-