org.apache.hc.client5.http.impl.routing

## Class DefaultRoutePlanner

- java.lang.Object
- - org.apache.hc.client5.http.impl.routing.DefaultRoutePlanner

All Implemented Interfaces:
  HttpRoutePlanner

Direct Known Subclasses:
  DefaultProxyRoutePlanner, SystemDefaultRoutePlanner

    @Contract(threading=IMMUTABLE_CONDITIONAL)
    public class DefaultRoutePlanner
    extends Object
    implements HttpRoutePlanner

Default implementation of an `HttpRoutePlanner`. It will not make use of any Java system properties, nor of system or browser proxy settings.

Since:
  4.3

### Constructor Summary

Constructors
Constructor and Description
`DefaultRoutePlanner(SchemePortResolver schemePortResolver)`

### Method Summary

Methods
`protected InetAddress` `determineLocalAddress(org.apache.hc.core5.http.HttpHost firstHop, org.apache.hc.core5.http.protocol.HttpContext context)` This implementation returns null.
`protected org.apache.hc.core5.http.HttpHost` `determineProxy(org.apache.hc.core5.http.HttpHost target, org.apache.hc.core5.http.protocol.HttpContext context)` This implementation returns null.
`HttpRoute` `determineRoute(org.apache.hc.core5.http.HttpHost host, org.apache.hc.core5.http.protocol.HttpContext context)` Determines the route for the given host.
`org.apache.hc.core5.http.HttpHost` `determineTargetHost(org.apache.hc.core5.http.HttpRequest request, org.apache.hc.core5.http.protocol.HttpContext context)` Determines the target host for the given request.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### DefaultRoutePlanner

    public DefaultRoutePlanner(SchemePortResolver schemePortResolver)

### Method Detail

#### determineRoute

    public final HttpRoute determineRoute(org.apache.hc.core5.http.HttpHost host,
                           org.apache.hc.core5.http.protocol.HttpContext context)
                                   throws org.apache.hc.core5.http.HttpException

Description copied from interface: `HttpRoutePlanner`
Determines the route for the given host.

Specified by:
  `determineRoute` in interface `HttpRoutePlanner`
Parameters:
  `host` - the target host for the request.
  `context` - the context to use for the subsequent execution. Implementations may accept `null`.
Returns:
  the route that the request should take
Throws:
  `org.apache.hc.core5.http.HttpException` - in case of a problem

#### determineTargetHost

    public final org.apache.hc.core5.http.HttpHost determineTargetHost(org.apache.hc.core5.http.HttpRequest request,
                                                        org.apache.hc.core5.http.protocol.HttpContext context)
                                                                throws org.apache.hc.core5.http.HttpException

Description copied from interface: `HttpRoutePlanner`
Determines the target host for the given request.

Specified by:
  `determineTargetHost` in interface `HttpRoutePlanner`
Parameters:
  `request` - the request to be executed
  `context` - the context to use for the subsequent execution. Implementations may accept `null`.
Returns:
  the route that the request should take
Throws:
  `org.apache.hc.core5.http.HttpException` - in case of a problem

#### determineProxy

    protected org.apache.hc.core5.http.HttpHost determineProxy(org.apache.hc.core5.http.HttpHost target,
                                                   org.apache.hc.core5.http.protocol.HttpContext context)
                                                        throws org.apache.hc.core5.http.HttpException

This implementation returns null.

Throws:
  `org.apache.hc.core5.http.HttpException` - may be thrown if overridden

#### determineLocalAddress

    protected InetAddress determineLocalAddress(org.apache.hc.core5.http.HttpHost firstHop,
                                    org.apache.hc.core5.http.protocol.HttpContext context)
                                         throws org.apache.hc.core5.http.HttpException

This implementation returns null.

Throws:
  `org.apache.hc.core5.http.HttpException` - may be thrown if overridden