org.apache.http.impl.conn

## Class ProxySelectorRoutePlanner

- java.lang.Object
- - org.apache.http.impl.conn.ProxySelectorRoutePlanner

All Implemented Interfaces:
  HttpRoutePlanner

Deprecated.
(4.3) use `SystemDefaultRoutePlanner`

    @Deprecated
    public class ProxySelectorRoutePlanner
    extends Object
    implements HttpRoutePlanner

Default implementation of an `HttpRoutePlanner`. This implementation is based on `ProxySelector`. By default, it will pick up the proxy settings of the JVM, either from system properties or from the browser running the application. Additionally, it interprets some `parameters`, though not the `DEFAULT_PROXY`.

The following parameters can be used to customize the behavior of this class:

- `ConnRoutePNames.LOCAL_ADDRESS`
- `ConnRoutePNames.FORCED_ROUTE`

Since:
  4.0

### Field Summary

Fields
`protected ProxySelector` `proxySelector` Deprecated. The proxy selector to use, or `null` for system default.
`protected SchemeRegistry` `schemeRegistry` Deprecated. The scheme registry.

### Constructor Summary

Constructors
Constructor and Description
`ProxySelectorRoutePlanner(SchemeRegistry schreg, ProxySelector prosel)` Deprecated. Creates a new proxy selector route planner.

### Method Summary

Methods
`protected Proxy` `chooseProxy(List<Proxy> proxies, org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)` Deprecated. Chooses a proxy from a list of available proxies.
`protected org.apache.http.HttpHost` `determineProxy(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)` Deprecated. Determines a proxy for the given target.
`HttpRoute` `determineRoute(org.apache.http.HttpHost target, org.apache.http.HttpRequest request, org.apache.http.protocol.HttpContext context)` Deprecated. Determines the route for a request.
`protected String` `getHost(InetSocketAddress isa)` Deprecated. Obtains a host from an `InetSocketAddress`.
`ProxySelector` `getProxySelector()` Deprecated. Obtains the proxy selector to use.
`void` `setProxySelector(ProxySelector prosel)` Deprecated. Sets the proxy selector to use.

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

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

### Field Detail

#### schemeRegistry

    protected final SchemeRegistry schemeRegistry

Deprecated.
The scheme registry.

#### proxySelector

    protected ProxySelector proxySelector

Deprecated.
The proxy selector to use, or `null` for system default.

### Constructor Detail

#### ProxySelectorRoutePlanner

    public ProxySelectorRoutePlanner(SchemeRegistry schreg,
                             ProxySelector prosel)

Deprecated.
Creates a new proxy selector route planner.

Parameters:
  `schreg` - the scheme registry
  `prosel` - the proxy selector, or `null` for the system default

### Method Detail

#### getProxySelector

    public ProxySelector getProxySelector()

Deprecated.
Obtains the proxy selector to use.

Returns:
  the proxy selector, or `null` for the system default

#### setProxySelector

    public void setProxySelector(ProxySelector prosel)

Deprecated.
Sets the proxy selector to use.

Parameters:
  `prosel` - the proxy selector, or `null` to use the system default

#### determineRoute

    public HttpRoute determineRoute(org.apache.http.HttpHost target,
                           org.apache.http.HttpRequest request,
                           org.apache.http.protocol.HttpContext context)
                             throws org.apache.http.HttpException

Deprecated.
Description copied from interface: `HttpRoutePlanner`
Determines the route for a request.

Specified by:
  `determineRoute` in interface `HttpRoutePlanner`
Parameters:
  `target` - the target host for the request. Implementations may accept `null` if they can still determine a route, for example to a default target or by inspecting the request.
  `request` - the request to execute
  `context` - the context to use for the subsequent execution. Implementations may accept `null`.
Returns:
  the route that the request should take
Throws:
  `org.apache.http.HttpException` - in case of a problem

#### determineProxy

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

Deprecated.
Determines a proxy for the given target.

Parameters:
  `target` - the planned target, never `null`
  `request` - the request to be sent, never `null`
  `context` - the context, or `null`
Returns:
  the proxy to use, or `null` for a direct route
Throws:
  `org.apache.http.HttpException` - in case of system proxy settings that cannot be handled

#### getHost

    protected String getHost(InetSocketAddress isa)

Deprecated.
Obtains a host from an `InetSocketAddress`.

Parameters:
  `isa` - the socket address
Returns:
  a host string, either as a symbolic name or as a literal IP address string

  (TODO: determine format for IPv6 addresses, with or without [brackets])

#### chooseProxy

    protected Proxy chooseProxy(List<Proxy> proxies,
                    org.apache.http.HttpHost target,
                    org.apache.http.HttpRequest request,
                    org.apache.http.protocol.HttpContext context)

Deprecated.
Chooses a proxy from a list of available proxies. The default implementation just picks the first non-SOCKS proxy from the list. If there are only SOCKS proxies, `Proxy.NO_PROXY` is returned. Derived classes may implement more advanced strategies, such as proxy rotation if there are multiple options.

Parameters:
  `proxies` - the list of proxies to choose from, never `null` or empty
  `target` - the planned target, never `null`
  `request` - the request to be sent, never `null`
  `context` - the context, or `null`
Returns:
  a proxy type