Skip to content

Most visited

Recently visited

navigation
Added in API level 1

ProxySelector

public abstract class ProxySelector
extends Object

java.lang.Object
   ↳ java.net.ProxySelector


Selects the proxy server to use, if any, when connecting to a given URL.

System Properties

The default proxy selector is configured by system properties.

Hostname patterns
URL schemeproperty namedescriptiondefault
ftpftp.nonProxyHostsHostname pattern for FTP servers to connect to directly (without a proxy).
httphttp.nonProxyHostsHostname pattern for HTTP servers to connect to directly (without a proxy).
httpshttps.nonProxyHostsHostname pattern for HTTPS servers to connect to directly (without a proxy).

HTTP Proxies
URL schemeproperty namedescriptiondefault
ftpftp.proxyHostHostname of the HTTP proxy server used for FTP requests.
ftp.proxyPortPort number of the HTTP proxy server used for FTP requests.80
httphttp.proxyHostHostname of the HTTP proxy server used for HTTP requests.
http.proxyPortPort number of the HTTP proxy server used for HTTP requests.80
httpshttps.proxyHostHostname of the HTTP proxy server used for HTTPS requests.
https.proxyPortPort number of the HTTP proxy server used for HTTPS requests.443
ftp, http or httpsproxyHostHostname of the HTTP proxy server used for FTP, HTTP and HTTPS requests.
proxyPortPort number of the HTTP proxy server.80 for FTP and HTTP
443 for HTTPS

SOCKS Proxies
URL schemeproperty namedescriptiondefault
ftp, http, https or socketsocksProxyHostHostname of the SOCKS proxy server used for FTP, HTTP, HTTPS and raw sockets.
Raw socket URLs are of the form socket://host:port
socksProxyPortPort number of the SOCKS proxy server.1080

Hostname patterns specify which hosts should be connected to directly, ignoring any other proxy system properties. If the URL's host matches the corresponding hostname pattern, NO_PROXY is returned.

The format of a hostname pattern is a list of hostnames that are separated by | and that use * as a wildcard. For example, setting the http.nonProxyHosts property to *.android.com|*.kernel.org will cause requests to http://developer.android.com to be made without a proxy.

The default proxy selector always returns exactly one proxy. If no proxy is applicable, NO_PROXY is returned. If multiple proxies are applicable, such as when both the proxyHost and socksProxyHost system properties are set, the result is the property listed earliest in the table above.

Alternatives

To request a URL without involving the system proxy selector, explicitly specify a proxy or NO_PROXY using openConnection(Proxy).

Use setDefault(ProxySelector) to install a custom proxy selector.

Summary

Public constructors

ProxySelector()

Public methods

abstract void connectFailed(URI uri, SocketAddress address, IOException failure)

Notifies this ProxySelector that a connection to the proxy server could not be established.

static ProxySelector getDefault()

Returns the default proxy selector, or null if none exists.

abstract List<Proxy> select(URI uri)

Returns the proxy servers to use on connections to uri.

static void setDefault(ProxySelector selector)

Sets the default proxy selector.

Inherited methods

From class java.lang.Object

Public constructors

ProxySelector

Added in API level 1
ProxySelector ()

Public methods

connectFailed

Added in API level 1
void connectFailed (URI uri, 
                SocketAddress address, 
                IOException failure)

Notifies this ProxySelector that a connection to the proxy server could not be established.

Parameters
uri URI: the URI to which the connection could not be established.
address SocketAddress: the address of the proxy.
failure IOException: the exception which was thrown during connection establishment.
Throws
IllegalArgumentException if any argument is null.

getDefault

Added in API level 1
ProxySelector getDefault ()

Returns the default proxy selector, or null if none exists.

Returns
ProxySelector

select

Added in API level 1
List<Proxy> select (URI uri)

Returns the proxy servers to use on connections to uri. This list will contain NO_PROXY if no proxy server should be used.

Parameters
uri URI
Returns
List<Proxy>
Throws
IllegalArgumentException if uri is null.

setDefault

Added in API level 1
void setDefault (ProxySelector selector)

Sets the default proxy selector. If selector is null, the current proxy selector will be removed.

Parameters
selector ProxySelector
This site uses cookies to store your preferences for site-specific language and display options.

Hooray!

This class requires API level or higher

This doc is hidden because your selected API level for the documentation is . You can change the documentation API level with the selector above the left navigation.

For more information about specifying the API level your app requires, read Supporting Different Platform Versions.