CronetEngine.Builder

class CronetEngine.Builder


Конструктор для CronetEngine , позволяющий настраивать CronetEngine во время выполнения. Параметры конфигурации задаются в конструкторе, после чего вызывается build для создания CronetEngine .

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

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

Класс, предоставляющий метод для загрузки нативной библиотеки Cronet.

Константы

const Int

Настройка для отключения HTTP-кэширования.

const Int

Настройка для включения кэширования на диске, включая данные HTTP.

const Int

Настройка для включения кэширования на диске, за исключением данных HTTP.

const Int

Настройка для включения кэширования HTTP-данных в оперативной памяти, включая HTTP-данные.

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

Builder (context: Context !)

Создает объект Builder , который упрощает создание объекта CronetEngine .

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

CronetEngine.Builder !
addPublicKeyPins (
hostName: String !,
pinsSha256: ( Mutable ) Set < ByteArray !>!,
includeSubdomains: Boolean ,
expirationDate: Date !
)

Закрепляет набор открытых ключей для заданного хоста.

CronetEngine.Builder !
addQuicHint (host: String !, port: Int , alternatePort: Int )

Добавляет подсказку о том, что host поддерживает QUIC.

CronetEngine !
build ()

Создайте объект CronetEngine , используя конфигурацию этого построителя.

CronetEngine.Builder !

Определяет, включено ли сжатие Brotli .

CronetEngine.Builder !
enableHttp2 (value: Boolean )

Определяет, включен ли протокол HTTP/2 .

CronetEngine.Builder !
enableHttpCache (cacheMode: Int , maxSize: Long )

Включает или отключает кэширование HTTP-данных и другой информации, такой как информация о сервере QUIC.

CronetEngine.Builder !

Включает в себя инструмент оценки качества сети, который собирает и передает данные об измерениях времени кругового пути (RTT) и пропускной способности нисходящего потока на различных уровнях сетевого стека.

CronetEngine.Builder !

Включает или отключает обход привязки открытого ключа для локальных доверенных якорей.

CronetEngine.Builder !
enableQuic (value: Boolean )

Определяет, включен ли протокол QUIC .

String !

Формирует строку User-Agent, включающую название и версию приложения, версию сборки системы, модель и идентификатор, а также версию Cronet.

CronetEngine.Builder !
CronetEngine.Builder !

Настраивает поведение миграции соединений.

CronetEngine.Builder !

Настраивает поведение поиска имени хоста.

CronetEngine.Builder !
CronetEngine.Builder !

Задает объект LibraryLoader , который будет использоваться для загрузки собственной библиотеки.

CronetEngine.Builder !
setProxyOptions (proxyOptions: ProxyOptions )

Настраивает поведение проксирования.

CronetEngine.Builder !
CronetEngine.Builder !

Настраивает поведение Cronet при использовании QUIC.

CronetEngine.Builder !

Задает каталог для кэширования HTTP-трафика и хранения файлов cookie.

CronetEngine.Builder !
setThreadPriority (priority: Int )

Эта функция устарела.

В современных версиях Cronet этот метод не работает.

CronetEngine.Builder !
setUserAgent (userAgent: String !)

Переопределяет заголовок User-Agent для всех запросов.

Охраняемые объекты недвижимости

JSONObject !

JSON-представление экспериментальных вариантов.

Константы

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

Параметр для отключения HTTP-кэширования. Некоторые данные могут временно храниться в памяти. Передается в enableHttpCache .

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

Параметр для включения кэширования на диске, включая данные HTTP. Перед передачей этой константы в enableHttpCache необходимо вызвать setStoragePath .

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

Параметр для включения кэширования на диске, за исключением данных HTTP. Перед передачей этой константы в enableHttpCache необходимо вызвать setStoragePath .

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

Параметр для включения кэширования HTTP-данных в оперативной памяти, включая HTTP-данные. Передается в enableHttpCache .

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

Строитель

Builder(context: Context!)

Создает объект Builder , который упрощает создание CronetEngine . Конфигурация по умолчанию включает HTTP/2 и QUIC, но отключает HTTP-кэширование.

Параметры
context: Context !

Context Android, который используется Builder для получения контекста приложения. Будет сохранена только ссылка на контекст приложения, чтобы избежать ненужного увеличения времени жизни context .

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

addPublicKeyPins

fun addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
): CronetEngine.Builder!

Закрепляет набор открытых ключей для заданного хоста. Закрепив набор открытых ключей ( pinsSha256 ), требуется аутентификация с hostName , использующим сертификат с открытым ключом из этого набора. Приложение может закрепить открытый ключ корневого сертификата, любого из промежуточных сертификатов или сертификата конечного узла. Аутентификация завершится неудачей, и защищенная связь не будет установлена, если ни один из открытых ключей не присутствует в цепочке сертификатов хоста, даже если хост попытается аутентифицироваться с помощью сертификата, разрешенного хранилищем доверенных сертификатов устройства.

Многократный вызов этого метода с одним и тем же именем хоста приводит к переопределению ранее установленных контактов для хоста.

Более подробная информация о привязке открытого ключа содержится в RFC 7469 .

Параметры
hostName: String !

Имя хоста, к которому должны быть привязаны открытые ключи. Хост, состоящий только из цифр и точки, считается недействительным.

pinsSha256: ( Mutable ) Set < ByteArray !>!

Набор контактов. Каждый контакт представляет собой криптографический хеш SHA-256 DER-кодированного представления ASN.1 информации об открытом ключе субъекта (SPKI) сертификата X.509 хоста. Используйте Certificate.getPublicKey() и Key.getEncoded() для получения DER-кодированного представления ASN.1 SPKI. Хотя этот метод не требует обязательного наличия резервного контакта, который можно использовать в случае потери контроля над основным закрытым ключом, настоятельно рекомендуется его указать.

includeSubdomains: Boolean

указывает, следует ли применять политику закрепления к поддоменам hostName .

expirationDate: Date !

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

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

Броски
java.lang.NullPointerException

если какой-либо из входных параметров равен null .

java.lang.IllegalArgumentException

если указанное имя хоста недействительно или pinsSha256 содержит массив байтов, который не представляет собой действительный хеш SHA-256.

addQuicHint

fun addQuicHint(host: String!, port: Int, alternatePort: Int): CronetEngine.Builder!

Добавляет подсказку о том, что host поддерживает QUIC. Обратите внимание, что для использования преимущества установления соединения с нулевым временем отклика (0-RTT) между сессиями необходим enableHttpCache ( HTTP_CACHE_DISK ).

Параметры
host: String !

Имя хоста сервера, поддерживающего QUIC.

port: Int

хост сервера, поддерживающего QUIC.

alternatePort: Int

альтернативный порт для использования в режиме QUIC.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

строить

fun build(): CronetEngine!

Создайте объект CronetEngine , используя конфигурацию этого построителя.

Возвраты
CronetEngine !

Создан CronetEngine .

enableBrotli

fun enableBrotli(value: Boolean): CronetEngine.Builder!

Определяет, включено ли сжатие Brotli . Если включено, Brotli будет упоминаться в заголовках запроса Accept-Encoding. По умолчанию отключено.

Параметры
value: Boolean

true включает Brotli, false отключает.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

enableHttp2

fun enableHttp2(value: Boolean): CronetEngine.Builder!

Определяет, включен ли протокол HTTP/2 . По умолчанию — включен.

Параметры
value: Boolean

true включает HTTP/2, false отключает.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

enableHttpCache

fun enableHttpCache(cacheMode: Int, maxSize: Long): CronetEngine.Builder!

Включает или отключает кэширование HTTP-данных и другой информации, такой как информация о сервере QUIC.

Параметры
cacheMode: Int

Управляет местоположением и типом кэшированных данных. Должен быть одним из HTTP_CACHE_* .

maxSize: Long

Максимальный размер кэша данных в байтах (рекомендуется, но иногда может быть превышен).

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

enableNetworkQualityEtimator

fun enableNetworkQualityEstimator(value: Boolean): CronetEngine.Builder!

Включает в себя оценщик качества сети, который собирает и передает данные об измерениях времени кругового пути (RTT) и пропускной способности на различных уровнях сетевого стека. После включения оценщика можно добавлять слушателей RTT и пропускной способности с помощью addRttListener и addThroughputListener , а удалять с помощью removeRttListener и removeThroughputListener . Оценщик использует память и ЦП только в включенном состоянии.

Параметры
value: Boolean

true включает оценку качества сети, false отключает.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

enablePublicKeyPinningBypassForLocalTrustAnchors

fun enablePublicKeyPinningBypassForLocalTrustAnchors(value: Boolean): CronetEngine.Builder!

Включает или отключает обход блокировки привязки открытого ключа для локальных доверенных якорей. Отключение обхода для локальных доверенных якорей крайне не рекомендуется, поскольку это может помешать приложению взаимодействовать с закрепленными хостами. Например, пользователь может захотеть направлять весь трафик через прокси-сервер с поддержкой SSL, изменив настройки прокси-сервера устройства и добавив сертификат прокси в список локальных доверенных якорей. Отключение обхода, скорее всего, помешает приложению отправлять какой-либо трафик на закрепленные хосты. Для получения дополнительной информации см. раздел «Как блокировка ключа взаимодействует с локальными прокси-серверами и фильтрами?» по адресу https://www.chromium.org/Home/chromium-security/security-faq

Параметры
value: Boolean

true включает обходной путь, false отключает его.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

enableQuic

fun enableQuic(value: Boolean): CronetEngine.Builder!

Определяет, включен ли протокол QUIC . По умолчанию — включен. Если QUIC включен, на сервер отправляется идентификатор пользовательского агента QUIC, содержащий имя приложения и версию Cronet.

Параметры
value: Boolean

true включает QUIC, значение false отключает.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

getDefaultUserAgent

fun getDefaultUserAgent(): String!

Формирует строку User-Agent, включающую название и версию приложения, версию сборки системы, модель и идентификатор, а также версию Cronet.

Возвраты
String !

Строка User-Agent.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptionsBuilder: ConnectionMigrationOptions.Builder!
): CronetEngine.Builder!

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptions: ConnectionMigrationOptions!
): CronetEngine.Builder!

Настраивает поведение миграции соединений. Для получения более подробной информации см. документацию по ConnectionMigrationOptions и отдельным методам ConnectionMigrationOptions.Builder .

Актуально только при включенной функции enableQuic .

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions!): CronetEngine.Builder!

Настраивает поведение поиска имени хоста. Для получения более подробной информации см. документацию по DnsOptions и отдельным методам DnsOptions.Builder .

Актуально только при включенной функции enableQuic .

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions.Builder!): CronetEngine.Builder!
См. также
setDnsOptions

setLibraryLoader

fun setLibraryLoader(loader: CronetEngine.Builder.LibraryLoader!): CronetEngine.Builder!

Задает объект LibraryLoader , который будет использоваться для загрузки нативной библиотеки. Если не задан, библиотека будет загружена с помощью loadLibrary .

Параметры
loader: CronetEngine.Builder.LibraryLoader !

LibraryLoader будет использоваться для загрузки собственной библиотеки.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

setProxyOptions

fun setProxyOptions(proxyOptions: ProxyOptions): CronetEngine.Builder!

Настраивает поведение проксирования. Это влияет различными способами на установление соединений, UrlRequest и BidirectionalStream . Для получения более подробной информации обратитесь к документации Proxy .

Это не следует путать с конфигурацией прокси-сервера, установленной пользователем, или с конфигурацией корпоративного профиля, или (скорее всего) с автоматической настройкой сети (например, протоколом автоматического обнаружения веб-прокси). Обычно это называется «системной» конфигурацией прокси-сервера. Если она присутствует, соблюдение системной конфигурации прокси-сервера часто является обязательным условием для получения локального и/или интернет-соединения. CronetEngine уже обрабатывает системную конфигурацию прокси-сервера внутри себя.

Конфигурации прокси, определенные через этот API, называются конфигурациями прокси «приложения». Конфигурации прокси приложения и системы являются отдельными и, что наиболее важно, различаются. В настоящее время конфигурации прокси приложения и системы являются взаимоисключающими: указание ProxyOptions переопределяет конфигурацию системного прокси, если она присутствует. Это может вызвать проблемы с подключением в некоторых сценариях, где присутствует конфигурация системного прокси. В таких сценариях пользователи могут остаться без доступа к интернету, если ProxyOptions не настроен с окончательным, null , резервным значением. См. документацию по ProxyOptions .

Параметры
proxyOptions: ProxyOptions

ProxyOptions, используемые для UrlRequest , BiridirectionalStream и соединений, устанавливаемых CronetEngine , созданным этим конструктором.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

Броски
java.lang.UnsupportedOperationException

если используемая реализация Cronet слишком устарела и не поддерживает ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
См. также
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptions: QuicOptions!): CronetEngine.Builder!

Настраивает поведение Cronet при использовании QUIC. Для получения более подробной информации см. документацию по QuicOptions и отдельным методам QuicOptions.Builder .

Актуально только при включенной функции enableQuic .

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

setStoragePath

fun setStoragePath(value: String!): CronetEngine.Builder!

Задает каталог для кэширования HTTP-трафика и хранения файлов cookie. Каталог должен существовать.

ПРИМЕЧАНИЕ: Не используйте один и тот же каталог хранения более чем с одним CronetEngine одновременно. Одновременный доступ к каталогу хранения несколькими устройствами CronetEngine не поддерживается.

Параметры
value: String !

путь к существующему каталогу.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

setThreadPriority

fun setThreadPriority(priority: Int): CronetEngine.Builder!

Устанавливает приоритет потока для внутреннего потока Cronet.

Параметры
priority: Int

Приоритет потока внутреннего потока Cronet. Уровень приоритета Linux, от -20 для наивысшего приоритета планирования до 19 для наинизшего приоритета планирования. Для получения дополнительной информации о значениях см. setThreadPriority и значения THREAD_PRIORITY_* .

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

setUserAgent

fun setUserAgent(userAgent: String!): CronetEngine.Builder!

Переопределяет заголовок User-Agent для всех запросов. Явно заданный заголовок User-Agent (установленный с помощью addHeader ) переопределит значение, установленное с помощью этой функции.

Параметры
userAgent: String !

Строка User-Agent, используемая для всех запросов.

Возвраты
CronetEngine.Builder !

строитель для облегчения создания цепочек.

Охраняемые объекты недвижимости

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

JSON-представление экспериментальных вариантов.