Proxy

class Proxy


Represents a proxy that can be used by CronetEngine.

How HTTP requests are sent via proxies depends on a variety of factors. For example: the type of proxy being used, the HTTP version being used, whether the request is being sent to a destination with an http or https URI scheme. Additionally, whether a tunnel through the proxy is established, or not, also depends on these factors.

Summary

Nested types

Controls tunnels established via HTTP CONNECT.

Actions that can be performed in response to onResponseReceived being called.

Represents an HTTP CONNECT request being sent to the proxy server.

@Retention(value = RetentionPolicy.SOURCE)
@IntDef(value = )
annotation Proxy.Scheme

Schemes supported when defining a proxy.

Constants

const Int

Establish a plaintext connection to the proxy itself.

const Int

Establish a secure connection to the proxy itself.

Public functions

java-static Proxy
createHttpProxy(
    @Proxy.Scheme scheme: Int,
    host: String,
    port: @IntRange(from = 0, to = 65535) Int,
    executor: Executor,
    callback: Proxy.HttpConnectCallback
)

Constructs an HTTP proxy.

Constants

SCHEME_HTTP

const val SCHEME_HTTP = 0: Int

Establish a plaintext connection to the proxy itself.

SCHEME_HTTPS

const val SCHEME_HTTPS = 1: Int

Establish a secure connection to the proxy itself.

Public functions

createHttpProxy

java-static fun createHttpProxy(
    @Proxy.Scheme scheme: Int,
    host: String,
    port: @IntRange(from = 0, to = 65535) Int,
    executor: Executor,
    callback: Proxy.HttpConnectCallback
): Proxy

Constructs an HTTP proxy.

When sending HTTP requests via an HTTP proxy, whether callback is called, or not, depends on the URI scheme of the destination:

  • For destinations with an https URI scheme, CronetEngine establishes a tunnel through the proxy. The tunnel is established via an HTTP CONNECT request. In this case callback will be called to control the HTTP CONNECT request used to establish the tunnel.
  • For destinations with an http URI scheme, CronetEngine sends an HTTP request, containing the entire URI of the destination, to the proxy. In this case callback will not be called.
Parameters
@Proxy.Scheme scheme: Int

Scheme that, alongside host and port, identifies this proxy.

host: String

Non-empty host that, alongside scheme and port, identifies this proxy.

port: @IntRange(from = 0, to = 65535) Int

Port that, alongside scheme and host, identifies this proxy. Its value must be within [0, 65535].

executor: Executor

Executor where callback will be invoked.

callback: Proxy.HttpConnectCallback

Callback that allows interacting with the HTTP CONNECT request, and its response, that CronetEngine sends to establish tunnels through the proxy.