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 Details

    • schemeRegistry

      protected SchemeRegistry schemeRegistry
      The scheme registry.
    • proxySelector

      protected ProxySelector proxySelector
      The proxy selector to use, or null for system default.
  • Constructor Details

    • ProxySelectorRoutePlanner

      public ProxySelectorRoutePlanner​(SchemeRegistry schreg, ProxySelector prosel)
      Creates a new proxy selector route planner.
      Parameters:
      schreg - the scheme registry
      prosel - the proxy selector, or null for the system default
  • Method Details

    • getProxySelector

      public ProxySelector getProxySelector()
      Obtains the proxy selector to use.
      Returns:
      the proxy selector, or null for the system default
    • setProxySelector

      public void setProxySelector​(ProxySelector prosel)
      Sets the proxy selector to use.
      Parameters:
      prosel - the proxy selector, or null to use the system default
    • determineRoute

      public HttpRoute determineRoute​(HttpHost target, HttpRequest request, HttpContext context) throws HttpException
      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:
      HttpException - in case of a problem
    • determineProxy

      protected HttpHost determineProxy​(HttpHost target, HttpRequest request, HttpContext context) throws HttpException
      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
    • getHost

      protected String getHost​(InetSocketAddress isa)
      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, HttpHost target, HttpRequest request, HttpContext context)