CronetEngine.Builder

public class CronetEngine.Builder


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

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

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

public abstract class CronetEngine.Builder.LibraryLoader

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

Константы

static final int

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

static final int

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

static final int

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

static final int

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

Защищенные поля

JSONObject

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

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

Builder ( Context context)

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

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

CronetEngine.Builder
addPublicKeyPins (
String hostName,
Set <byte[]> pinsSha256,
boolean includeSubdomains,
Date expirationDate
)

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

CronetEngine.Builder
addQuicHint ( String host, int port, int alternatePort)

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

CronetEngine
build ()

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

CronetEngine.Builder
enableBrotli (boolean value)

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

CronetEngine.Builder
enableHttp2 (boolean value)

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

CronetEngine.Builder
enableHttpCache (int cacheMode, long maxSize)

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

CronetEngine.Builder

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

CronetEngine.Builder

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

CronetEngine.Builder
enableQuic (boolean value)

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

String

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

CronetEngine.Builder
CronetEngine.Builder

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

CronetEngine.Builder

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

CronetEngine.Builder
CronetEngine.Builder

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

CronetEngine.Builder

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

CronetEngine.Builder
CronetEngine.Builder

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

CronetEngine.Builder

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

CronetEngine.Builder
setThreadPriority (int priority)

Этот метод устарел.

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

CronetEngine.Builder
setUserAgent ( String userAgent)

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

Константы

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

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

HTTP_CACHE_DISK_NO_HTTP

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

HTTP_CACHE_IN_MEMORY

public static final int HTTP_CACHE_IN_MEMORY = 1

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

Защищенные поля

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

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

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

Строитель

public Builder(Context context)

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

Параметры
Context context

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

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

addPublicKeyPins

public CronetEngine.Builder addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

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

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

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

Параметры
String hostName

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

Set <byte[]> pinsSha256

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

boolean includeSubdomains

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

Date expirationDate

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

Возвраты
CronetEngine.Builder

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

Броски
java.lang.NullPointerException

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

java.lang.IllegalArgumentException

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

addQuicHint

public CronetEngine.Builder addQuicHint(String host, int port, int alternatePort)

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

Параметры
String host

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

int port

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

int alternatePort

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

Возвраты
CronetEngine.Builder

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

строить

public CronetEngine build()

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

Возвраты
CronetEngine

Создан CronetEngine .

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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

Параметры
boolean value

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

Возвраты
CronetEngine.Builder

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

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

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

Параметры
boolean value

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

Возвраты
CronetEngine.Builder

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

enableHttpCache

public CronetEngine.Builder enableHttpCache(int cacheMode, long maxSize)

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

Параметры
int cacheMode

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

long maxSize

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

Возвраты
CronetEngine.Builder

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

enableNetworkQualityEtimator

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

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

Параметры
boolean value

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

Возвраты
CronetEngine.Builder

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

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

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

Параметры
boolean value

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

Возвраты
CronetEngine.Builder

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

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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

Параметры
boolean value

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

Возвраты
CronetEngine.Builder

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

getDefaultUserAgent

public String getDefaultUserAgent()

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

Возвраты
String

Строка User-Agent.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions.Builder connectionMigrationOptionsBuilder
)

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions connectionMigrationOptions
)

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

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

Возвраты
CronetEngine.Builder

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

setDnsOptions

@DnsOptions.Experimental
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

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

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

Возвраты
CronetEngine.Builder

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

setDnsOptions

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

setLibraryLoader

public CronetEngine.Builder setLibraryLoader(CronetEngine.Builder.LibraryLoader loader)

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

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

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

Возвраты
CronetEngine.Builder

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

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

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

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

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

Параметры
@ NonNull ProxyOptions proxyOptions

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

Возвраты
CronetEngine.Builder

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

Броски
java.lang.UnsupportedOperationException

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

setQuicOptions

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

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions quicOptions)

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

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

Возвраты
CronetEngine.Builder

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

setStoragePath

public CronetEngine.Builder setStoragePath(String value)

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

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

Параметры
String value

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

Возвраты
CronetEngine.Builder

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

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

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

Параметры
int priority

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

Возвраты
CronetEngine.Builder

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

setUserAgent

public CronetEngine.Builder setUserAgent(String userAgent)

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

Параметры
String userAgent

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

Возвраты
CronetEngine.Builder

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