CronetEngine.Builder

public 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

static final int

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

static final int

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

static final int

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

static final int

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

Campos protegidos

JSONObject

Representación JSON de las opciones experimentales.

Constructores públicos

Builder(Context context)

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

Métodos públicos

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

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

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

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

CronetEngine

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

CronetEngine.Builder
enableBrotli(boolean value)

Establece si la compresión Brotli está habilitada.

CronetEngine.Builder
enableHttp2(boolean value)

Establece si el protocolo HTTP/2 está habilitado.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

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
enableQuic(boolean value)

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
setThreadPriority(int priority)

Este método dejó de estar disponible.

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

CronetEngine.Builder
setUserAgent(String userAgent)

Anula el encabezado User-Agent para todas las solicitudes.

Constantes

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

public static final int HTTP_CACHE_DISK = 3

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

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

public static final int HTTP_CACHE_IN_MEMORY = 1

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

Campos protegidos

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

Representación JSON de las opciones experimentales.

Constructores públicos

Builder

public 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.

Métodos públicos

addPublicKeyPins

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

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
String hostName

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.

Set<byte[]> pinsSha256

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.

boolean includeSubdomains

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

Date expirationDate

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

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

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
String host

Es el nombre de host del servidor que admite QUIC.

int port

Es el host del servidor que admite QUIC.

int alternatePort

Es el puerto alternativo que se usará para QUIC.

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

build

public CronetEngine build()

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

Muestra
CronetEngine

construyó CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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
boolean value

true para habilitar Brotli y false para inhabilitarlo.

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

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

Parámetros
boolean value

true para habilitar HTTP/2, false para inhabilitarlo

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

enableHttpCache

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

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

Parámetros
int cacheMode

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

long maxSize

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

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

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
boolean value

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

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

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
boolean value

true para habilitar la omisión y false para inhabilitarla

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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
boolean value

true para habilitar QUIC y false para inhabilitarlo.

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

getDefaultUserAgent

public String getDefaultUserAgent()

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
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions.Builder connectionMigrationOptionsBuilder
)
Consulta también
setConnectionMigrationOptions

setConnectionMigrationOptions

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

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
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

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
public CronetEngine.Builder setDnsOptions(DnsOptions.Builder dnsOptions)
Consulta también
setDnsOptions

setLibraryLoader

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

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

Parámetros
CronetEngine.Builder.LibraryLoader loader

LibraryLoader que se usará para cargar la biblioteca nativa.

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

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
@NonNull 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
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
Consulta también
setQuicOptions

setQuicOptions

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

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

public CronetEngine.Builder setStoragePath(String value)

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
String value

Ruta de acceso al directorio existente.

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

Establece la prioridad del subproceso interno de Cronet.

Parámetros
int priority

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

public CronetEngine.Builder setUserAgent(String userAgent)

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
String userAgent

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

Muestra
CronetEngine.Builder

el compilador para facilitar el encadenamiento.