@NotThreadSafe public class ProxySelectorRoutePlanner extends Object implements HttpRoutePlanner
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:
| Modifier and Type | Field and Description |
|---|---|
protected ProxySelector |
proxySelector
The proxy selector to use, or
null for system default. |
protected SchemeRegistry |
schemeRegistry
The scheme registry.
|
| Constructor and Description |
|---|
ProxySelectorRoutePlanner(SchemeRegistry schreg,
ProxySelector prosel)
Creates a new proxy selector route planner.
|
| Modifier and Type | Method and Description |
|---|---|
protected Proxy |
chooseProxy(List<Proxy> proxies,
HttpHost target,
HttpRequest request,
HttpContext context)
Chooses a proxy from a list of available proxies.
|
protected HttpHost |
determineProxy(HttpHost target,
HttpRequest request,
HttpContext context)
Determines a proxy for the given target.
|
HttpRoute |
determineRoute(HttpHost target,
HttpRequest request,
HttpContext context)
Determines the route for a request.
|
protected String |
getHost(InetSocketAddress isa)
Obtains a host from an
InetSocketAddress. |
ProxySelector |
getProxySelector()
Obtains the proxy selector to use.
|
void |
setProxySelector(ProxySelector prosel)
Sets the proxy selector to use.
|
protected final SchemeRegistry schemeRegistry
protected ProxySelector proxySelector
null for system default.public ProxySelectorRoutePlanner(SchemeRegistry schreg, ProxySelector prosel)
schreg - the scheme registryprosel - the proxy selector, or
null for the system defaultpublic ProxySelector getProxySelector()
null for the system defaultpublic void setProxySelector(ProxySelector prosel)
prosel - the proxy selector, or
null to use the system defaultpublic HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context) throws HttpException
HttpRoutePlannerdetermineRoute in interface HttpRoutePlannertarget - 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 executecontext - the context to use for the subsequent execution.
Implementations may accept null.HttpException - in case of a problemprotected HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpException
target - the planned target, never nullrequest - the request to be sent, never nullcontext - the context, or nullnull for a direct routeHttpException - in case of system proxy settings that cannot be handledprotected String getHost(InetSocketAddress isa)
InetSocketAddress.isa - the socket addressprotected Proxy chooseProxy(List<Proxy> proxies, HttpHost target, HttpRequest request, HttpContext context)
Proxy.NO_PROXY is returned.
Derived classes may implement more advanced strategies,
such as proxy rotation if there are multiple options.proxies - the list of proxies to choose from,
never null or emptytarget - the planned target, never nullrequest - the request to be sent, never nullcontext - the context, or nullCopyright © 1999–2013 The Apache Software Foundation. All rights reserved.