Package org.apache.http.impl.conn
Class ProxySelectorRoutePlanner
java.lang.Object
org.apache.http.impl.conn.ProxySelectorRoutePlanner
- All Implemented Interfaces:
HttpRoutePlanner
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.-
Field Summary
Fields Modifier and Type Field Description protected ProxySelectorproxySelectorThe proxy selector to use, ornullfor system default.protected SchemeRegistryschemeRegistryThe scheme registry. -
Constructor Summary
Constructors Constructor Description ProxySelectorRoutePlanner(SchemeRegistry schreg, ProxySelector prosel)Creates a new proxy selector route planner. -
Method Summary
Modifier and Type Method Description protected ProxychooseProxy(List<Proxy> proxies, HttpHost target, HttpRequest request, HttpContext context)protected HttpHostdetermineProxy(HttpHost target, HttpRequest request, HttpContext context)Determines a proxy for the given target.HttpRoutedetermineRoute(HttpHost target, HttpRequest request, HttpContext context)Determines the route for a request.protected StringgetHost(InetSocketAddress isa)Obtains a host from anInetSocketAddress.ProxySelectorgetProxySelector()Obtains the proxy selector to use.voidsetProxySelector(ProxySelector prosel)Sets the proxy selector to use.
-
Field Details
-
schemeRegistry
The scheme registry. -
proxySelector
The proxy selector to use, ornullfor system default.
-
-
Constructor Details
-
ProxySelectorRoutePlanner
Creates a new proxy selector route planner.- Parameters:
schreg- the scheme registryprosel- the proxy selector, ornullfor the system default
-
-
Method Details
-
getProxySelector
Obtains the proxy selector to use.- Returns:
- the proxy selector, or
nullfor the system default
-
setProxySelector
Sets the proxy selector to use.- Parameters:
prosel- the proxy selector, ornullto use the system default
-
determineRoute
public HttpRoute determineRoute(HttpHost target, HttpRequest request, HttpContext context) throws HttpExceptionDescription copied from interface:HttpRoutePlannerDetermines the route for a request.- Specified by:
determineRoutein interfaceHttpRoutePlanner- Parameters:
target- the target host for the request. Implementations may acceptnullif 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 acceptnull.- Returns:
- the route that the request should take
- Throws:
HttpException- in case of a problem
-
determineProxy
protected HttpHost determineProxy(HttpHost target, HttpRequest request, HttpContext context) throws HttpExceptionDetermines a proxy for the given target.- Parameters:
target- the planned target, nevernullrequest- the request to be sent, nevernullcontext- the context, ornull- Returns:
- the proxy to use, or
nullfor a direct route - Throws:
HttpException- in case of system proxy settings that cannot be handled
-
getHost
Obtains a host from anInetSocketAddress.- 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, HttpHost target, HttpRequest request, HttpContext context)
-