public class

ProxySelectorRoutePlanner

extends Object
implements HttpRoutePlanner
java.lang.Object
   ↳ org.apache.http.impl.conn.ProxySelectorRoutePlanner

Class Overview

Default implementation of an HttpRoutePlanner. This implementation is based on java.net.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:

Summary

Fields
protected ProxySelector proxySelector The proxy selector to use, or null for system default.
protected final SchemeRegistry schemeRegistry The scheme registry.
Public Constructors
ProxySelectorRoutePlanner(SchemeRegistry schreg, ProxySelector prosel)
Creates a new proxy selector route planner.
Public Methods
HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context)
Determines the route for a request.
ProxySelector getProxySelector()
Obtains the proxy selector to use.
void setProxySelector(ProxySelector prosel)
Sets the proxy selector to use.
Protected Methods
Proxy chooseProxy(List<Proxy> proxies, HttpHost target, HttpRequest request, HttpContext context)
Chooses a proxy from a list of available proxies.
HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context)
Determines a proxy for the given target.
String getHost(InetSocketAddress isa)
Obtains a host from an InetSocketAddress.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.http.conn.routing.HttpRoutePlanner

Fields

protected ProxySelector proxySelector

Also: HttpClient

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

protected final SchemeRegistry schemeRegistry

Also: HttpClient

The scheme registry.

Public Constructors

public ProxySelectorRoutePlanner (SchemeRegistry schreg, ProxySelector prosel)

Also: HttpClient

Creates a new proxy selector route planner.

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

Public Methods

public HttpRoute determineRoute (HttpHost target, HttpRequest request, HttpContext context)

Also: HttpClient

Determines the route for a request.

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
HttpException

public ProxySelector getProxySelector ()

Also: HttpClient

Obtains the proxy selector to use.

Returns
  • the proxy selector, or null for the system default

public void setProxySelector (ProxySelector prosel)

Also: HttpClient

Sets the proxy selector to use.

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

Protected Methods

protected Proxy chooseProxy (List<Proxy> proxies, HttpHost target, HttpRequest request, HttpContext context)

Also: HttpClient

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

protected HttpHost determineProxy (HttpHost target, HttpRequest request, HttpContext context)

Also: HttpClient

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
HttpException in case of system proxy settings that cannot be handled

protected String getHost (InetSocketAddress isa)

Also: HttpClient

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])