CronetEngine.Builder

class CronetEngine.Builder


Un builder per CronetEngine, che consente la configurazione di runtime di CronetEngine. Le opzioni di configurazione vengono impostate nel builder, quindi viene chiamato build per creare CronetEngine.

Riepilogo

Tipi nidificati

Una classe che fornisce un metodo per caricare la libreria nativa di Cronet.

Costanti

const Int

Impostazione per disattivare la cache HTTP.

const Int

Impostazione per abilitare la cache su disco, inclusi i dati HTTP.

const Int

Impostazione per abilitare la cache su disco, esclusi i dati HTTP.

const Int

Impostazione per abilitare la cache HTTP in memoria, inclusi i dati HTTP.

Costruttori pubblici

Builder(context: Context!)

Costruisce un oggetto Builder che facilita la creazione di un CronetEngine.

Funzioni pubbliche

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

Blocca un insieme di chiavi pubbliche per un determinato host.

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

Aggiunge un suggerimento che indica che host supporta QUIC.

CronetEngine!

Crea un CronetEngine utilizzando la configurazione di questo builder.

CronetEngine.Builder!

Determina se la compressione Brotli è attivata.

CronetEngine.Builder!

Specifica se il protocollo HTTP/2 è abilitato.

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

Attiva o disattiva la memorizzazione nella cache dei dati HTTP e di altre informazioni, come quelle del server QUIC.

CronetEngine.Builder!

Attiva lo strumento di stima della qualità della rete, che raccoglie e registra le misurazioni del tempo di round trip (RTT) e del throughput downstream a vari livelli dello stack di rete.

CronetEngine.Builder!

Attiva o disattiva l'aggiramento del pinning della chiave pubblica per i trust anchor locali.

CronetEngine.Builder!

Specifica se il protocollo QUIC è abilitato.

String!

Costruisce una stringa User-Agent che include il nome e la versione dell'applicazione, la versione della build del sistema, il modello e l'ID, nonché la versione di Cronet.

CronetEngine.Builder!
CronetEngine.Builder!

Configura il comportamento della migrazione della connessione.

CronetEngine.Builder!

Configura il comportamento della ricerca del nome host.

CronetEngine.Builder!
CronetEngine.Builder!

Imposta un LibraryLoader da utilizzare per caricare la libreria nativa.

CronetEngine.Builder!

Configura il comportamento del proxy.

CronetEngine.Builder!
CronetEngine.Builder!

Configura il comportamento di Cronet quando si utilizza QUIC.

CronetEngine.Builder!

Imposta la directory per la memorizzazione nella cache HTTP e dei cookie.

CronetEngine.Builder!

Questa funzione è obsoleta.

Nelle versioni moderne di Cronet, questo metodo non fa nulla.

CronetEngine.Builder!
setUserAgent(userAgent: String!)

Esegue l'override dell'intestazione User-Agent per tutte le richieste.

Proprietà protette

JSONObject!

Rappresentazione JSON delle opzioni sperimentali.

Costanti

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

Impostazione per disattivare la cache HTTP. Alcuni dati potrebbero essere ancora memorizzati temporaneamente nella memoria. Trasferito a enableHttpCache.

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

Impostazione per abilitare la cache su disco, inclusi i dati HTTP. setStoragePath deve essere chiamato prima di passare questa costante a enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

Impostazione per abilitare la cache su disco, esclusi i dati HTTP. setStoragePath deve essere chiamato prima di passare questa costante a enableHttpCache.

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

Impostazione per abilitare la cache HTTP in memoria, inclusi i dati HTTP. Trasferito a enableHttpCache.

Costruttori pubblici

Builder

Builder(context: Context!)

Costruisce un oggetto Builder che facilita la creazione di un CronetEngine. La configurazione predefinita attiva HTTP/2 e QUIC, ma disattiva la cache HTTP.

Parametri
context: Context!

Android Context, utilizzato da Builder per recuperare il contesto dell'applicazione. Verrà mantenuto un riferimento solo al contesto dell'applicazione, in modo da evitare di estendere inutilmente la durata di context.

Funzioni pubbliche

addPublicKeyPins

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

Blocca un insieme di chiavi pubbliche per un determinato host. Se viene bloccato un insieme di chiavi pubbliche, pinsSha256, la comunicazione con hostName richiede l'autenticazione con un certificato con una chiave pubblica dell'insieme di chiavi bloccate. Un'app può bloccare la chiave pubblica del certificato radice, uno qualsiasi dei certificati intermedi o il certificato di voce finale. L'autenticazione non andrà a buon fine e la comunicazione sicura non verrà stabilita se nessuna delle chiavi pubbliche è presente nella catena di certificati dell'host, anche se l'host tenta di autenticarsi con un certificato consentito dall'archivio certificati attendibili del dispositivo.

La chiamata di questo metodo più volte con lo stesso nome host sostituisce i pin impostati in precedenza per l'host.

Per saperne di più sul pinning della chiave pubblica, consulta RFC 7469.

Parametri
hostName: String!

nome dell'host a cui devono essere bloccate le chiavi pubbliche. Un host composto solo da cifre e dal carattere punto viene considerato non valido.

pinsSha256: (Mutable)Set<ByteArray!>!

un insieme di segnaposto. Ogni pin è l'hash crittografico SHA-256 della rappresentazione ASN.1 con codifica DER di Subject Public Key Info (SPKI) del certificato X.509 dell'host. Utilizza Certificate.getPublicKey() e Key.getEncoded() per ottenere la rappresentazione ASN.1 con codifica DER della SPKI. Sebbene il metodo non richieda la presenza del PIN di backup che può essere utilizzato se il controllo della chiave privata principale è andato perso, è consigliabile fornirne uno.

includeSubdomains: Boolean

indica se la policy di blocco deve essere applicata ai sottodomini di hostName.

expirationDate: Date!

specifica la data di scadenza dei pin.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

Genera
java.lang.NullPointerException

se uno dei parametri di input è null.

java.lang.IllegalArgumentException

se il nome host specificato non è valido o se pinsSha256 contiene un array di byte che non rappresenta un hash SHA-256 valido.

addQuicHint

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

Aggiunge un suggerimento che indica che host supporta QUIC. Tieni presente che enableHttpCache (HTTP_CACHE_DISK) è necessario per sfruttare la creazione di connessioni 0-RTT tra le sessioni.

Parametri
host: String!

Nome host del server che supporta QUIC.

port: Int

host del server che supporta QUIC.

alternatePort: Int

porta alternativa da utilizzare per QUIC.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

build

fun build(): CronetEngine!

Crea un CronetEngine utilizzando la configurazione di questo builder.

Resi
CronetEngine!

costruito CronetEngine.

enableBrotli

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

Specifica se la compressione Brotli è abilitata. Se abilitato, Brotli verrà pubblicizzato nelle intestazioni delle richieste Accept-Encoding. Il valore predefinito è disattivato.

Parametri
value: Boolean

true per attivare Brotli, false per disattivarlo.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

enableHttp2

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

Specifica se il protocollo HTTP/2 è abilitato. Valore predefinito: attivato.

Parametri
value: Boolean

true per attivare HTTP/2, false per disattivarlo.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

enableHttpCache

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

Attiva o disattiva la memorizzazione nella cache dei dati HTTP e di altre informazioni, come quelle del server QUIC.

Parametri
cacheMode: Int

controllare la posizione e il tipo di dati memorizzati nella cache. Deve essere uno dei seguenti: HTTP_CACHE_*.

maxSize: Long

dimensione massima in byte utilizzata per memorizzare nella cache i dati (consigliata e a volte superata).

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

enableNetworkQualityEstimator

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

Attiva lo strumento di stima della qualità della rete, che raccoglie e segnala le misurazioni del tempo di round trip (RTT) e del throughput downstream a vari livelli dello stack di rete. Dopo aver attivato lo strumento di stima, gli ascoltatori di RTT e throughput possono essere aggiunti con addRttListener e addThroughputListener e rimossi con removeRttListener e removeThroughputListener. Lo strumento di stima utilizza memoria e CPU solo quando è abilitato.

Parametri
value: Boolean

true per attivare lo strumento di stima della qualità della rete, false per disattivarlo.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

enablePublicKeyPinningBypassForLocalTrustAnchors

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

Attiva o disattiva l'aggiramento del pinning della chiave pubblica per i trust anchor locali. La disattivazione dell'aggiramento per i trust anchor locali è fortemente sconsigliata, in quanto potrebbe impedire all'app di comunicare con gli host bloccati. Ad esempio, un utente potrebbe voler inviare tutto il traffico tramite un proxy abilitato SSL modificando le impostazioni del proxy del dispositivo e aggiungendo il certificato del proxy all'elenco di ancoraggio attendibile locale. La disattivazione del bypass impedirà molto probabilmente all'app di inviare traffico agli host bloccati. Per ulteriori informazioni, consulta la sezione "How does key pinning interact with local proxies and filters?" (Come interagisce il key pinning con proxy e filtri locali?) all'indirizzo https://www.chromium.org/Home/chromium-security/security-faq.

Parametri
value: Boolean

true per attivare il bypass, false per disattivarlo.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

enableQuic

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

Specifica se il protocollo QUIC è abilitato. Valore predefinito: attivato. Se QUIC è abilitato, al server viene inviato l'ID agente utente QUIC contenente il nome dell'applicazione e la versione di Cronet.

Parametri
value: Boolean

true per attivare QUIC, false per disattivarlo.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

getDefaultUserAgent

fun getDefaultUserAgent(): String!

Costruisce una stringa User-Agent che include il nome e la versione dell'applicazione, la versione della build del sistema, il modello e l'ID, nonché la versione di Cronet.

Resi
String!

Stringa user agent.

setConnectionMigrationOptions

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

setConnectionMigrationOptions

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

Configura il comportamento della migrazione della connessione. Per maggiori dettagli, consulta la documentazione di ConnectionMigrationOptions e i singoli metodi di ConnectionMigrationOptions.Builder.

Pertinente solo se enableQuic è abilitato.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

setDnsOptions

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

Configura il comportamento della ricerca del nome host. Per maggiori dettagli, consulta la documentazione di DnsOptions e i singoli metodi di DnsOptions.Builder.

Pertinente solo se enableQuic è abilitato.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

setLibraryLoader

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

Imposta un LibraryLoader da utilizzare per caricare la libreria nativa. Se non viene impostata, la libreria verrà caricata utilizzando loadLibrary.

Parametri
loader: CronetEngine.Builder.LibraryLoader!

LibraryLoader da utilizzare per caricare la libreria nativa.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

setProxyOptions

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

Configura il comportamento del proxy. Ciò influisce, in modi diversi, sulla creazione di connessioni, su UrlRequest e su BidirectionalStream. Per maggiori dettagli, consulta la documentazione di Proxy.

Questa operazione non deve essere confusa con la configurazione del proxy impostata dall'utente o da una configurazione del profilo aziendale oppure (molto probabilmente) da una configurazione automatica della rete (ad es. Web Proxy Auto-Discovery Protocol). Questa operazione viene in genere definita configurazione proxy "di sistema". Se presente, il rispetto della configurazione del proxy di sistema è spesso un requisito per ottenere la connettività locale e/o internet. CronetEngine gestisce già internamente la configurazione del proxy di sistema.

Una configurazione del proxy definita tramite questa API viene definita configurazione del proxy "app". La configurazione del proxy di app e sistema è separata e, soprattutto, diversa. Al momento, le configurazioni proxy di app e sistema si escludono a vicenda: la specifica di ProxyOptions sostituisce la configurazione proxy di sistema, se presente. Ciò potrebbe causare problemi di connettività in alcuni scenari in cui è presente una configurazione proxy di sistema. In questi scenari, gli utenti potrebbero non avere accesso a internet, a meno che ProxyOptions non sia stato configurato con un fallback finale, null. Consulta la documentazione di ProxyOptions.

Parametri
proxyOptions: ProxyOptions

ProxyOptions da utilizzare per UrlRequest, BiridirectionalStream e le connessioni stabilite da CronetEngine creato da questo builder.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

Genera
java.lang.UnsupportedOperationException

se l'implementazione di Cronet utilizzata è troppo vecchia per supportare ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
Vedi anche
setQuicOptions

setQuicOptions

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

Configura il comportamento di Cronet quando si utilizza QUIC. Per maggiori dettagli, consulta la documentazione di QuicOptions e i singoli metodi di QuicOptions.Builder.

Pertinente solo se enableQuic è abilitato.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

setStoragePath

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

Imposta la directory per la cache HTTP e l'archiviazione dei cookie. La directory deve esistere.

NOTA:non utilizzare la stessa directory di archiviazione con più di un CronetEngine alla volta. L'accesso alla directory di archiviazione non supporta l'accesso simultaneo da parte di più CronetEngine.

Parametri
value: String!

percorso della directory esistente.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

setThreadPriority

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

Imposta la priorità del thread interno di Cronet.

Parametri
priority: Int

la priorità del thread del thread interno di Cronet. Un livello di priorità Linux, da -20 per la priorità di pianificazione più alta a 19 per la priorità di pianificazione più bassa. Per ulteriori informazioni sui valori, vedi i valori setThreadPriority e THREAD_PRIORITY_*.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

setUserAgent

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

Esegue l'override dell'intestazione User-Agent per tutte le richieste. Un'intestazione User-Agent impostata in modo esplicito (impostata utilizzando addHeader) sostituirà un valore impostato utilizzando questa funzione.

Parametri
userAgent: String!

la stringa User-Agent da utilizzare per tutte le richieste.

Resi
CronetEngine.Builder!

lo strumento di creazione per facilitare il concatenamento.

Proprietà protette

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

Rappresentazione JSON delle opzioni sperimentali.