ProxyOptions

public final class ProxyOptions


Defines a proxy configuration that can be used by CronetEngine.

Summary

Nested types

Defines behavior after all proxies in a ProxyOptions have failed.

Constants

static final int

Allows direct, non-proxied, traffic.

static final int

Disallows direct traffic.

Public methods

static @NonNull ProxyOptions
fromProxyList(
    @NonNull List<Proxy> proxyList,
    @ProxyOptions.AllProxiesFailedBehavior int allProxiesFailedBehavior
)

Constructs a proxy configuration out of a list of Proxy.

Constants

ALL_PROXIES_FAILED_BEHAVIOR_ALLOW_DIRECT

public static final int ALL_PROXIES_FAILED_BEHAVIOR_ALLOW_DIRECT = 1

Allows direct, non-proxied, traffic.

This defines a fail-open behavior: if all proxies in a ProxyOptions have failed, CronetEngine will fall back onto non-proxied connections.

ALL_PROXIES_FAILED_BEHAVIOR_DISALLOW_DIRECT

public static final int ALL_PROXIES_FAILED_BEHAVIOR_DISALLOW_DIRECT = 0

Disallows direct traffic.

This defines a fail-closed behavior: if all proxies in a ProxyOptions have failed, CronetEngine won't fall back onto non-proxied connections.

Public methods

fromProxyList

public static @NonNull ProxyOptions fromProxyList(
    @NonNull List<Proxy> proxyList,
    @ProxyOptions.AllProxiesFailedBehavior int allProxiesFailedBehavior
)

Constructs a proxy configuration out of a list of Proxy.

Proxies in the list will be used in order. Proxy in position N+1 will be used only if CronetEngine failed to use proxy in position N. If proxy in position N fails, for any reason (including tunnel closures triggered via Proxy.HttpConnectCallback), but proxy in position N+1 succeeds, proxies in position N will be temporarily deprioritized. While a proxy is deprioritized it will be used only as a last resort.

Parameters
@NonNull List<Proxy> proxyList

The list of Proxy that defines this configuration.

@ProxyOptions.AllProxiesFailedBehavior int allProxiesFailedBehavior

How CronetEngine must behave after it has failed to use all proxies in proxyList.

Throws
java.lang.IllegalArgumentException

If the proxy list is empty, or any element is null.