Proxy


public final class Proxy
extends Object

java.lang.Object
   ↳ android.net.http.Proxy


Represents a proxy that can be used by HttpEngine.

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 classes

interface Proxy.HttpConnectCallback

Controls tunnels established via HTTP CONNECT. 

Constants

int SCHEME_HTTP

Establish a plaintext connection to the proxy itself.

int SCHEME_HTTPS

Establish a secure connection to the proxy itself.

Public methods

static Proxy createHttpProxy(int scheme, String host, int port, Executor executor, Proxy.HttpConnectCallback callback)

Constructs an HTTP proxy.

Inherited methods

Constants

SCHEME_HTTP

public static final int SCHEME_HTTP

Establish a plaintext connection to the proxy itself.

Constant Value: 0 (0x00000000)

SCHEME_HTTPS

public static final int SCHEME_HTTPS

Establish a secure connection to the proxy itself.

Constant Value: 1 (0x00000001)

Public methods

createHttpProxy

public static Proxy createHttpProxy (int scheme, 
                String host, 
                int port, 
                Executor executor, 
                Proxy.HttpConnectCallback callback)

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, HttpEngine establishes a tunnel through the proxy. The tunnel is established via an HTTP CONNECT request. In this case {code callback} will be called to control the HTTP CONNECT request used to establish the tunnel.
  • For destinations with an http URI scheme, HttpEngine sends an HTTP request, containing the entire URI of the destination, to the proxy. In this case callback will not be called.

Parameters
scheme int: ERROR(Scheme/android.net.http.Proxy.Scheme Scheme) that, alongside host and port, identifies this proxy.
Value is one of the following:
host String: Non-empty host that, alongside scheme and port, identifies this proxy.
This value cannot be null.

port int: Port that, alongside scheme and host, identifies this proxy. Its value must be within [0, 65535].
Value is between 0 and 65535 inclusive

executor Executor: Executor where callback will be invoked.
This value cannot be null.

callback Proxy.HttpConnectCallback: Callback that allows interacting with the HTTP CONNECT request, and its response, that HttpEngine sends to establish tunnels through the proxy.
This value cannot be null.

Returns
Proxy This value cannot be null.