Proxy.HttpConnectCallback

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 .

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

Константы

const Int

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

const Int

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

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

Общественные функции

abstract Unit

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

abstract Int

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

Константы

RESPONSE_ACTION_CLOSE

const val RESPONSE_ACTION_CLOSE = 0: Int

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

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

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

const val RESPONSE_ACTION_PROCEED = 1: Int

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

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

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

HttpConnectCallback

HttpConnectCallback()

Общественные функции

onBeforeRequest

abstract fun onBeforeRequest(request: Proxy.HttpConnectCallback.Request): Unit

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

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

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

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

onResponseReceived

@Proxy.HttpConnectCallback.OnResponseReceivedAction
abstract fun onResponseReceived(
    responseHeaders: (Mutable)List<Pair<String!, String!>!>,
    statusCode: Int
): Int

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

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

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

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

Параметры
responseHeaders: ( Mutable ) List < Pair < String !, String !>!>

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

statusCode: Int

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

Возвраты
Int

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