CronetEngine.Builder

public 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

static final int

Impostazione per disattivare la cache HTTP.

static final int

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

static final int

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

static final int

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

Campi protetti

JSONObject

Rappresentazione JSON delle opzioni sperimentali.

Costruttori pubblici

Builder(Context context)

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

Metodi pubblici

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

Blocca un insieme di chiavi pubbliche per un determinato host.

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

Aggiunge un suggerimento che indica che host supporta QUIC.

CronetEngine

Crea un CronetEngine utilizzando la configurazione di questo builder.

CronetEngine.Builder
enableBrotli(boolean value)

Specifica se la compressione Brotli è abilitata.

CronetEngine.Builder
enableHttp2(boolean value)

Specifica se il protocollo HTTP/2 è abilitato.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

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

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

Questo metodo è obsoleto.

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

CronetEngine.Builder
setUserAgent(String userAgent)

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

Costanti

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

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

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

public static final int HTTP_CACHE_IN_MEMORY = 1

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

Campi protetti

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

Rappresentazione JSON delle opzioni sperimentali.

Costruttori pubblici

Builder

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

Metodi pubblici

addPublicKeyPins

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

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

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.

Set<byte[]> pinsSha256

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.

boolean includeSubdomains

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

Date expirationDate

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

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

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

Nome host del server che supporta QUIC.

int port

host del server che supporta QUIC.

int alternatePort

porta alternativa da utilizzare per QUIC.

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.

build

public CronetEngine build()

Crea un CronetEngine utilizzando la configurazione di questo builder.

Resi
CronetEngine

costruito CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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

Parametri
boolean value

true per attivare Brotli, false per disattivarlo.

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

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

Parametri
boolean value

true per attivare HTTP/2, false per disattivarlo.

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.

enableHttpCache

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

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

Parametri
int cacheMode

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

long maxSize

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

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

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

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

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

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

true per attivare il bypass, false per disattivarlo.

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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

true per attivare QUIC, false per disattivarlo.

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.

getDefaultUserAgent

public String getDefaultUserAgent()

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
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions connectionMigrationOptions
)

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

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

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

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

Parametri
CronetEngine.Builder.LibraryLoader loader

LibraryLoader da utilizzare per caricare la libreria nativa.

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

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
@NonNull 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
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
Vedi anche
setQuicOptions

setQuicOptions

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

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

public CronetEngine.Builder setStoragePath(String value)

Imposta la directory per la memorizzazione nella cache HTTP e 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
String value

percorso della directory esistente.

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

Imposta la priorità del thread interno di Cronet.

Parametri
int priority

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

public CronetEngine.Builder setUserAgent(String userAgent)

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

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

Resi
CronetEngine.Builder

lo strumento di creazione per facilitare il concatenamento.