Proxy.HttpConnectCallback

public abstract class Proxy.HttpConnectCallback


Управляет туннелями, установленными через HTTP CONNECT. Все методы будут вызываться на исполнителе, указанном в createHttpProxy .

Методы этого класса вызываются только тогда, когда выполняются оба следующих условия:

- HttpEngine must establish a connection to the destination of an HTTP request
- The destination of the HTTP request has an https URI scheme
Чтобы понять, как CronetEngine принимает решение о создании туннеля через HTTP-прокси, обратитесь к документации createHttpProxy .

Краткое содержание

Вложенные типы

Действия, которые могут быть выполнены в ответ на вызов onResponseReceived .

public abstract class Proxy.HttpConnectCallback.Request implements AutoCloseable

Представляет собой HTTP-запрос CONNECT, отправляемый на прокси-сервер.

Константы

static final int

Закрывает туннельное соединение, предотвращая его использование для отправки HTTP-запросов.

static final int

Приступает к прокладке туннеля.

Государственные строители

Общедоступные методы

abstract void

Вызывается перед отправкой HTTP-запроса CONNECT на прокси-сервер для установления туннеля.

abstract int

Вызывается после получения ответа на HTTP-запрос CONNECT, отправленный прокси-серверу для установления туннеля.

Константы

RESPONSE_ACTION_CLOSE

public static final int RESPONSE_ACTION_CLOSE = 0

Закрывает туннельное соединение, предотвращая его использование для отправки HTTP-запросов.

Когда туннельное соединение закрывается, CronetEngine интерпретирует это как ошибку использования связанного Proxy . Затем CronetEngine попытается использовать следующий Proxy из списка, переданного в ProxyOptions (подробнее см. в документации к этому классу).

ОТВЕТ_ДЕЙСТВИЕ_ПРОДОЛЖИТЬ

public static final int RESPONSE_ACTION_PROCEED = 1

Приступает к прокладке туннеля.

Это не гарантирует успешного установления туннеля и его использования для отправки HTTP-запросов: CronetEngine выполнит дополнительные проверки перед этим. В зависимости от их результатов CronetEngine может принять решение о закрытии туннельного соединения. Если CronetEngine закроет туннельное соединение, это будет расценено как неудачная попытка использования соответствующего Proxy . Затем CronetEngine попытается использовать следующий Proxy из списка, переданного в ProxyOptions (подробнее см. в документации к этому классу).

Государственные строители

HttpConnectCallback

public HttpConnectCallback()

Общедоступные методы

onBeforeRequest

public abstract void onBeforeRequest(@NonNull Proxy.HttpConnectCallback.Request request)

Вызывается перед отправкой HTTP-запроса CONNECT на прокси-сервер для установления туннеля.

Позволяет изменять или отменять указанный запрос до его отправки прокси-серверу. Подробнее о том, как можно изменить/отменить запрос, см. в Request .

Параметры
@ NonNull Proxy.HttpConnectCallback.Request request

Представляет собой HTTP-запрос CONNECT, который будет отправлен на прокси-сервер.

onResponseReceived

@Proxy.HttpConnectCallback.OnResponseReceivedAction
public abstract int onResponseReceived(
    @NonNull List<Pair<StringString>> responseHeaders,
    int statusCode
)

Вызывается после получения ответа на HTTP-запрос CONNECT, отправленный прокси-серверу для установления туннеля. Позволяет считывать заголовки и код состояния.

При отправке HTTP-запросов к адресату со схемой URI HTTPS, CronetEngine никогда не будет использовать прокси-сервер, чей коллбэк onResponseReceived еще не был вызван.

Эта функция не будет вызываться для HTTP-запросов, которые будут проходить через туннель после его установления.

Если этот метод вызовет исключение типа java.lang.Throwable , судьба туннеля будет такой же, как если бы было возвращено исключение RESPONSE_ACTION_CLOSE ( java.lang.Throwable не будет перехвачено).

Параметры
@ NonNull List < Pair < String , String >> responseHeaders

Список заголовков, содержащихся в ответе на HTTP-запрос CONNECT.

int statusCode

Код состояния HTTP, содержащийся в ответе на запрос HTTP CONNECT.

Возвраты
int

Значение OnResponseReceivedAction определяющее, что следует сделать с этим туннельным соединением. См. документацию OnResponseReceivedAction .