CronetEngine.Builder

class CronetEngine.Builder


Es un compilador de CronetEngine que permite la configuración en el tiempo de ejecución de CronetEngine. Las opciones de configuración se establecen en el compilador y, luego, se llama a build para crear el CronetEngine.

Resumen

Tipos anidados

Clase que proporciona un método para cargar la biblioteca nativa de Cronet.

Constantes

const Int

Es el parámetro de configuración para inhabilitar la caché de HTTP.

const Int

Es el parámetro de configuración para habilitar la caché en el disco, incluidos los datos HTTP.

const Int

Es el parámetro de configuración para habilitar la caché en el disco, sin incluir los datos HTTP.

const Int

Es un parámetro de configuración para habilitar la caché HTTP en memoria, incluidos los datos HTTP.

Constructores públicos

Builder(context: Context!)

Construye un objeto Builder que facilita la creación de un objeto CronetEngine.

Funciones públicas

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

Fija un conjunto de claves públicas para un host determinado.

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

Se agregó una sugerencia que indica que host admite QUIC.

CronetEngine!

Compila un CronetEngine con la configuración de este compilador.

CronetEngine.Builder!

Establece si la compresión Brotli está habilitada.

CronetEngine.Builder!

Establece si el protocolo HTTP/2 está habilitado.

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

Habilita o inhabilita el almacenamiento en caché de datos HTTP y otra información, como la información del servidor QUIC.

CronetEngine.Builder!

Habilita el estimador de calidad de la red, que recopila y registra mediciones del tiempo de ida y vuelta (RTT) y la capacidad de procesamiento de descarga en varias capas de la pila de red.

CronetEngine.Builder!

Habilita o inhabilita la omisión de la fijación de claves públicas para los anclajes de confianza locales.

CronetEngine.Builder!

Establece si el protocolo QUIC está habilitado.

String!

Construye una cadena de User-Agent que incluye el nombre y la versión de la aplicación, la versión de compilación del sistema, el modelo y el ID, y la versión de Cronet.

CronetEngine.Builder!
CronetEngine.Builder!

Configura el comportamiento de la migración de conexión.

CronetEngine.Builder!

Configura el comportamiento de la búsqueda de nombres de host.

CronetEngine.Builder!
CronetEngine.Builder!

Establece un LibraryLoader que se usará para cargar la biblioteca nativa.

CronetEngine.Builder!

Configura el comportamiento del proxy.

CronetEngine.Builder!
CronetEngine.Builder!

Configura el comportamiento de Cronet cuando se usa QUIC.

CronetEngine.Builder!

Establece el directorio para el almacenamiento de cookies y caché HTTP.

CronetEngine.Builder!

Esta función es obsoleta.

En las versiones modernas de Cronet, este método no hace nada.

CronetEngine.Builder!
setUserAgent(userAgent: String!)

Anula el encabezado User-Agent para todas las solicitudes.

Propiedades protegidas

JSONObject!

Representación JSON de las opciones experimentales.

Constantes

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

Es el parámetro de configuración para inhabilitar la caché de HTTP. Es posible que algunos datos aún se almacenen temporalmente en la memoria. Se pasó a enableHttpCache.

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

Es el parámetro de configuración para habilitar la caché en el disco, incluidos los datos HTTP. Se debe llamar a setStoragePath antes de pasar esta constante a enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

Es el parámetro de configuración para habilitar la caché en el disco, sin incluir los datos HTTP. Se debe llamar a setStoragePath antes de pasar esta constante a enableHttpCache.

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

Es un parámetro de configuración para habilitar la caché HTTP en memoria, incluidos los datos HTTP. Se pasó a enableHttpCache.

Constructores públicos

Builder

Builder(context: Context!)

Construye un objeto Builder que facilita la creación de un objeto CronetEngine. La configuración predeterminada habilita HTTP/2 y QUIC, pero inhabilita la caché de HTTP.

Parámetros
context: Context!

Context de Android, que usa Builder para recuperar el contexto de la aplicación. Se conservará una referencia solo al contexto de la aplicación para evitar extender la vida útil de context de forma innecesaria.

Funciones públicas

addPublicKeyPins

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

Fija un conjunto de claves públicas para un host determinado. Cuando se fija un conjunto de claves públicas, pinsSha256, se requiere la comunicación con hostName para autenticarse con un certificado que tenga una clave pública del conjunto de claves fijadas. Una app puede fijar la clave pública del certificado raíz, cualquiera de los certificados intermedios o el certificado de entrada final. La autenticación fallará y no se establecerá una comunicación segura si ninguna de las claves públicas está presente en la cadena de certificados del host, incluso si el host intenta autenticarse con un certificado permitido por el almacén de certificados de confianza del dispositivo.

Si se llama a este método varias veces con el mismo nombre de host, se anulan las fijaciones establecidas anteriormente para el host.

Puedes encontrar más información sobre la fijación de claves públicas en RFC 7469.

Parámetros
hostName: String!

Es el nombre del host al que se deben fijar las claves públicas. Un host que consta solo de dígitos y el carácter de punto se considera no válido.

pinsSha256: (Mutable)Set<ByteArray!>!

un conjunto de pines. Cada fijación es el hash criptográfico SHA-256 de la representación ASN.1 codificada en DER de la información de la clave pública del sujeto (SPKI) del certificado X.509 del host. Usa Certificate.getPublicKey() y Key.getEncoded() para obtener la representación ASN.1 codificada en DER del SPKI. Si bien el método no exige la presencia del PIN de copia de seguridad que se puede usar si se perdió el control de la clave privada principal, se recomienda proporcionar uno.

includeSubdomains: Boolean

Indica si la política de fijación se debe aplicar a los subdominios de hostName.

expirationDate: Date!

especifica la fecha de vencimiento de las fijaciones.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

Arroja
java.lang.NullPointerException

si alguno de los parámetros de entrada es null.

java.lang.IllegalArgumentException

Si el nombre de host proporcionado no es válido o si pinsSha256 contiene un array de bytes que no representa un hash SHA-256 válido

addQuicHint

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

Se agregó una sugerencia que indica que host admite QUIC. Ten en cuenta que se necesita enableHttpCache (HTTP_CACHE_DISK) para aprovechar el establecimiento de conexión con 0 RTT entre sesiones.

Parámetros
host: String!

Es el nombre de host del servidor que admite QUIC.

port: Int

Es el host del servidor que admite QUIC.

alternatePort: Int

Es el puerto alternativo que se usará para QUIC.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

build

fun build(): CronetEngine!

Compila un CronetEngine con la configuración de este compilador.

Muestra
CronetEngine!

construyó CronetEngine.

enableBrotli

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

Establece si la compresión Brotli está habilitada. Si está habilitado, Brotli se anunciará en los encabezados de solicitud Accept-Encoding. La configuración predeterminada es inhabilitada.

Parámetros
value: Boolean

true para habilitar Brotli y false para inhabilitarlo.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

enableHttp2

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

Establece si el protocolo HTTP/2 está habilitado. La configuración predeterminada está habilitada.

Parámetros
value: Boolean

true para habilitar HTTP/2, false para inhabilitarlo

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

enableHttpCache

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

Habilita o inhabilita el almacenamiento en caché de datos HTTP y otra información, como la información del servidor QUIC.

Parámetros
cacheMode: Int

controlar la ubicación y el tipo de datos almacenados en caché Debe ser una de las siguientes opciones: HTTP_CACHE_*.

maxSize: Long

Es el tamaño máximo en bytes que se usa para almacenar datos en caché (es orientativo y, a veces, se puede superar).

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

enableNetworkQualityEstimator

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

Habilita el estimador de calidad de la red, que recopila y registra mediciones del tiempo de ida y vuelta (RTT) y la capacidad de procesamiento de descarga en varias capas de la pila de red. Después de habilitar el estimador, se pueden agregar objetos de escucha de RTT y de capacidad de procesamiento con addRttListener y addThroughputListener, y se pueden quitar con removeRttListener y removeThroughputListener. El estimador usa memoria y CPU solo cuando está habilitado.

Parámetros
value: Boolean

true para habilitar el estimador de calidad de la red y false para inhabilitarlo.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

enablePublicKeyPinningBypassForLocalTrustAnchors

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

Habilita o inhabilita la omisión de la fijación de claves públicas para los anclajes de confianza locales. Se recomienda no inhabilitar la omisión para los anclajes de confianza locales, ya que esto puede impedir que la app se comunique con los hosts fijados. Por ejemplo, un usuario puede querer enviar todo el tráfico a través de un proxy habilitado para SSL. Para ello, debe cambiar la configuración del proxy del dispositivo y agregar el certificado del proxy a la lista de anclajes de confianza locales. Si se inhabilita la omisión, es muy probable que la app no envíe tráfico a los hosts fijados. Para obtener más información, consulta "¿Cómo interactúa la fijación de claves con los proxies y filtros locales?" en https://www.chromium.org/Home/chromium-security/security-faq.

Parámetros
value: Boolean

true para habilitar la omisión y false para inhabilitarla

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

enableQuic

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

Establece si el protocolo QUIC está habilitado. La configuración predeterminada está habilitada. Si QUIC está habilitado, se envía al servidor el ID del agente de usuario de QUIC que contiene el nombre de la aplicación y la versión de Cronet.

Parámetros
value: Boolean

true para habilitar QUIC y false para inhabilitarlo.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

getDefaultUserAgent

fun getDefaultUserAgent(): String!

Construye una cadena de User-Agent que incluye el nombre y la versión de la aplicación, la versión de compilación del sistema, el modelo y el ID, y la versión de Cronet.

Muestra
String!

Es la cadena de usuario-agente.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptionsBuilder: ConnectionMigrationOptions.Builder!
): CronetEngine.Builder!
Consulta también
setConnectionMigrationOptions

setConnectionMigrationOptions

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

Configura el comportamiento de la migración de conexión. Para obtener más detalles, consulta la documentación de ConnectionMigrationOptions y los métodos individuales de ConnectionMigrationOptions.Builder.

Solo es relevante si enableQuic está habilitado.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

setDnsOptions

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

Configura el comportamiento de la búsqueda de nombres de host. Para obtener más detalles, consulta la documentación de DnsOptions y los métodos individuales de DnsOptions.Builder.

Solo es relevante si enableQuic está habilitado.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions.Builder!): CronetEngine.Builder!
Consulta también
setDnsOptions

setLibraryLoader

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

Establece un LibraryLoader que se usará para cargar la biblioteca nativa. Si no se establece, la biblioteca se cargará con loadLibrary.

Parámetros
loader: CronetEngine.Builder.LibraryLoader!

LibraryLoader que se usará para cargar la biblioteca nativa.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

setProxyOptions

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

Configura el comportamiento del proxy. Esto afecta de diferentes maneras el establecimiento de conexiones, UrlRequest y BidirectionalStream. Para obtener más detalles, consulta la documentación de Proxy.

Esto no se debe confundir con la configuración de proxy que estableció el usuario, alguna configuración de perfil empresarial o (lo más probable) alguna configuración automática de red (p.ej., el Protocolo de detección automática de proxy web). Por lo general, esto se conoce como configuración de proxy "del sistema". Si está presente, respetar la configuración del proxy del sistema suele ser un requisito para obtener conectividad local o a Internet. CronetEngine ya controla la configuración del proxy del sistema de forma interna.

La configuración del proxy definida a través de esta API se conoce como configuración del proxy "de la app". La configuración del proxy del sistema y de la app son independientes y, lo que es más importante, diferentes. Actualmente, las configuraciones de proxy del sistema y de la app son mutuamente exclusivas: especificar ProxyOptions anula la configuración de proxy del sistema, si está presente. Esto puede causar problemas de conectividad en algunos casos en los que hay una configuración de proxy del sistema. En estos casos, es posible que los usuarios no tengan acceso a Internet, a menos que ProxyOptions se haya configurado con una alternativa final, null. Consulta la documentación de ProxyOptions.

Parámetros
proxyOptions: ProxyOptions

Es el objeto ProxyOptions que se usará para UrlRequest, BiridirectionalStream y las conexiones establecidas por el objeto CronetEngine creado por este compilador.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

Arroja
java.lang.UnsupportedOperationException

si la implementación de Cronet que se usa es demasiado antigua para admitir ProxyOptions

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
Consulta también
setQuicOptions

setQuicOptions

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

Configura el comportamiento de Cronet cuando se usa QUIC. Para obtener más detalles, consulta la documentación de QuicOptions y los métodos individuales de QuicOptions.Builder.

Solo es relevante si enableQuic está habilitado.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

setStoragePath

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

Establece el directorio para el almacenamiento de cookies y caché HTTP. El directorio debe existir.

NOTA: No uses el mismo directorio de almacenamiento con más de un CronetEngine a la vez. El acceso al directorio de almacenamiento no admite el acceso simultáneo de varios CronetEngine.

Parámetros
value: String!

Ruta de acceso al directorio existente.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

setThreadPriority

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

Establece la prioridad del subproceso interno de Cronet.

Parámetros
priority: Int

Es la prioridad del subproceso interno de Cronet. Es un nivel de prioridad de Linux, desde -20 para la prioridad de programación más alta hasta 19 para la prioridad de programación más baja. Para obtener más información sobre los valores, consulta los valores de setThreadPriority y THREAD_PRIORITY_*.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

setUserAgent

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

Anula el encabezado User-Agent para todas las solicitudes. Un encabezado User-Agent establecido de forma explícita (con addHeader) anulará un valor establecido con esta función.

Parámetros
userAgent: String!

Es la cadena de User-Agent que se usará para todas las solicitudes.

Muestra
CronetEngine.Builder!

el compilador para facilitar el encadenamiento.

Propiedades protegidas

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

Es la representación JSON de las opciones experimentales.