CronetEngine.Builder

class CronetEngine.Builder


Compilateur pour les CronetEngine, qui permet la configuration du temps d'exécution de CronetEngine. Les options de configuration sont définies sur le générateur, puis build est appelé pour créer le CronetEngine.

Résumé

Types imbriqués

Classe qui fournit une méthode pour charger la bibliothèque native Cronet.

Constantes

const Int

Paramètre permettant de désactiver le cache HTTP.

const Int

Paramètre permettant d'activer le cache sur le disque, y compris les données HTTP.

const Int

Paramètre permettant d'activer le cache sur disque, à l'exclusion des données HTTP.

const Int

Paramètre permettant d'activer le cache HTTP en mémoire, y compris les données HTTP.

Constructeurs publics

Builder(context: Context!)

Construit un objet Builder qui facilite la création d'un CronetEngine.

Fonctions publiques

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

Épingle un ensemble de clés publiques pour un hôte donné.

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

Ajoute une indication selon laquelle host est compatible avec QUIC.

CronetEngine!

Créez un CronetEngine à l'aide de la configuration de ce compilateur.

CronetEngine.Builder!

Indique si la compression Brotli est activée.

CronetEngine.Builder!

Indique si le protocole HTTP/2 est activé.

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

Active ou désactive la mise en cache des données HTTP et d'autres informations, comme celles du serveur QUIC.

CronetEngine.Builder!

Active l'estimateur de qualité du réseau, qui collecte et signale les mesures du délai aller-retour (DAR) et du débit descendant à différents niveaux de la pile réseau.

CronetEngine.Builder!

Active ou désactive le contournement de l'épinglage de clé publique pour les ancres de confiance locales.

CronetEngine.Builder!

Indique si le protocole QUIC est activé.

String!

Construit une chaîne User-Agent incluant le nom et la version de l'application, la version de compilation du système, le modèle et l'ID, ainsi que la version de Cronet.

CronetEngine.Builder!
CronetEngine.Builder!

Configure le comportement de la migration de connexion.

CronetEngine.Builder!

Configure le comportement de la recherche de nom d'hôte.

CronetEngine.Builder!
CronetEngine.Builder!

Définit un LibraryLoader à utiliser pour charger la bibliothèque native.

CronetEngine.Builder!

Configure le comportement du proxy.

CronetEngine.Builder!
CronetEngine.Builder!

Configure le comportement de Cronet lors de l'utilisation de QUIC.

CronetEngine.Builder!

Définit le répertoire pour le cache HTTP et le stockage des cookies.

CronetEngine.Builder!

Cette fonction est obsolète.

Dans les versions modernes de Cronet, cette méthode ne fait rien.

CronetEngine.Builder!
setUserAgent(userAgent: String!)

Remplace l'en-tête User-Agent pour toutes les requêtes.

Propriétés protégées

JSONObject!

Représentation JSON des options expérimentales.

Constantes

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

Paramètre permettant de désactiver le cache HTTP. Certaines données peuvent encore être stockées temporairement en mémoire. Transmis à enableHttpCache.

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

Paramètre permettant d'activer le cache sur le disque, y compris les données HTTP. setStoragePath doit être appelé avant de transmettre cette constante à enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

Paramètre permettant d'activer le cache sur disque, à l'exclusion des données HTTP. setStoragePath doit être appelé avant de transmettre cette constante à enableHttpCache.

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

Paramètre permettant d'activer le cache HTTP en mémoire, y compris les données HTTP. Transmis à enableHttpCache.

Constructeurs publics

Compilateur

Builder(context: Context!)

Construit un objet Builder qui facilite la création d'un CronetEngine. La configuration par défaut active HTTP/2 et QUIC, mais désactive le cache HTTP.

Paramètres
context: Context!

Android Context, utilisé par Builder pour récupérer le contexte de l'application. Une référence au seul contexte d'application sera conservée, afin d'éviter d'étendre inutilement la durée de vie de context.

Fonctions publiques

addPublicKeyPins

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

Épingle un ensemble de clés publiques pour un hôte donné. En épinglant un ensemble de clés publiques, pinsSha256, la communication avec hostName est nécessaire pour s'authentifier avec un certificat dont la clé publique fait partie de l'ensemble épinglé. Une application peut épingler la clé publique du certificat racine, de l'un des certificats intermédiaires ou du certificat d'entrée de fin. L'authentification échouera et la communication sécurisée ne sera pas établie si aucune des clés publiques n'est présente dans la chaîne de certificats de l'hôte, même si l'hôte tente de s'authentifier avec un certificat autorisé par le magasin de certificats approuvés de l'appareil.

Si vous appelez cette méthode plusieurs fois avec le même nom d'hôte, les épingles précédemment définies pour l'hôte seront remplacées.

Pour en savoir plus sur l'épinglage de clé publique, consultez la RFC 7469.

Paramètres
hostName: String!

Nom de l'hôte auquel les clés publiques doivent être épinglées. Un hôte composé uniquement de chiffres et du caractère point est considéré comme non valide.

pinsSha256: (Mutable)Set<ByteArray!>!

un ensemble de repères. Chaque code est le hachage cryptographique SHA-256 de la représentation ASN.1 codée en DER des informations de clé publique du sujet (SPKI) du certificat X.509 de l'hôte. Utilisez Certificate.getPublicKey() et Key.getEncoded() pour obtenir la représentation ASN.1 encodée au format DER du SPKI. Bien que la méthode n'exige pas la présence du code secret de sauvegarde qui peut être utilisé si le contrôle de la clé privée principale a été perdu, il est fortement recommandé d'en fournir un.

includeSubdomains: Boolean

indique si la règle d'épinglage doit être appliquée aux sous-domaines de hostName.

expirationDate: Date!

spécifie la date d'expiration des codes.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

Génère
java.lang.NullPointerException

si l'un des paramètres d'entrée est null.

java.lang.IllegalArgumentException

si le nom d'hôte indiqué n'est pas valide ou si pinsSha256 contient un tableau d'octets qui ne représente pas un hachage SHA-256 valide.

addQuicHint

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

Ajoute une indication selon laquelle host est compatible avec QUIC. Notez que enableHttpCache (HTTP_CACHE_DISK) est nécessaire pour profiter de l'établissement de connexion 0-RTT entre les sessions.

Paramètres
host: String!

Nom d'hôte du serveur compatible avec QUIC.

port: Int

Hôte du serveur compatible avec QUIC.

alternatePort: Int

Port alternatif à utiliser pour QUIC.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

build

fun build(): CronetEngine!

Créez un CronetEngine à l'aide de la configuration de ce compilateur.

Renvoie
CronetEngine!

construit CronetEngine.

enableBrotli

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

Indique si la compression Brotli est activée. Si Brotli est activé, il sera annoncé dans les en-têtes de requête Accept-Encoding. La valeur par défaut est "disabled".

Paramètres
value: Boolean

true pour activer Brotli, false pour désactiver.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

enableHttp2

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

Indique si le protocole HTTP/2 est activé. Elle est activée par défaut.

Paramètres
value: Boolean

true pour activer HTTP/2, false pour le désactiver.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

enableHttpCache

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

Active ou désactive la mise en cache des données HTTP et d'autres informations, comme celles du serveur QUIC.

Paramètres
cacheMode: Int

contrôler l'emplacement et le type de données mises en cache. Doit être l'un des suivants : HTTP_CACHE_*.

maxSize: Long

Taille maximale en octets utilisée pour mettre en cache les données (information indicative, qui peut parfois être dépassée).

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

enableNetworkQualityEstimator

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

Active l'estimateur de qualité du réseau, qui collecte et signale les mesures du délai aller-retour (DAR) et du débit descendant à différents niveaux de la pile réseau. Une fois l'estimateur activé, les écouteurs de RTT et de débit peuvent être ajoutés avec addRttListener et addThroughputListener, et supprimés avec removeRttListener et removeThroughputListener. L'estimateur n'utilise la mémoire et le processeur que lorsqu'il est activé.

Paramètres
value: Boolean

true pour activer l'estimateur de qualité du réseau, false pour le désactiver.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

enablePublicKeyPinningBypassForLocalTrustAnchors

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

Active ou désactive le contournement de l'épinglage de clé publique pour les ancres de confiance locales. Il est fortement déconseillé de désactiver le contournement pour les ancres d'approbation locales, car cela peut empêcher l'application de communiquer avec les hôtes épinglés. Par exemple, un utilisateur peut vouloir envoyer tout le trafic via un proxy SSL en modifiant les paramètres proxy de l'appareil et en ajoutant le certificat de proxy à la liste des ancres de confiance locales. Si vous désactivez le contournement, il est fort probable que l'application ne puisse plus envoyer de trafic aux hôtes épinglés. Pour en savoir plus, consultez "How does key pinning interact with local proxies and filters?" (Comment l'épinglage de clés interagit-il avec les filtres et les proxys locaux ?) sur https://www.chromium.org/Home/chromium-security/security-faq.

Paramètres
value: Boolean

true pour activer le contournement, false pour le désactiver.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

enableQuic

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

Indique si le protocole QUIC est activé. Elle est activée par défaut. Si QUIC est activé, l'ID de l'agent utilisateur QUIC contenant le nom de l'application et la version de Cronet est envoyé au serveur.

Paramètres
value: Boolean

true pour activer QUIC, false pour le désactiver.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

getDefaultUserAgent

fun getDefaultUserAgent(): String!

Construit une chaîne User-Agent incluant le nom et la version de l'application, la version de compilation du système, le modèle et l'ID, ainsi que la version de Cronet.

Renvoie
String!

Chaîne user-agent.

setConnectionMigrationOptions

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

setConnectionMigrationOptions

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

Configure le comportement de la migration de connexion. Pour en savoir plus, consultez la documentation de ConnectionMigrationOptions et des méthodes individuelles de ConnectionMigrationOptions.Builder.

Pertinent uniquement si enableQuic est activé.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

setDnsOptions

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

Configure le comportement de la recherche de nom d'hôte. Pour en savoir plus, consultez la documentation de DnsOptions et des méthodes individuelles de DnsOptions.Builder.

Pertinent uniquement si enableQuic est activé.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

setLibraryLoader

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

Définit un LibraryLoader à utiliser pour charger la bibliothèque native. Si ce paramètre n'est pas défini, la bibliothèque sera chargée à l'aide de loadLibrary.

Paramètres
loader: CronetEngine.Builder.LibraryLoader!

LibraryLoader à utiliser pour charger la bibliothèque native.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

setProxyOptions

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

Configure le comportement du proxy. Cela affecte, de différentes manières, l'établissement des connexions, UrlRequest et BidirectionalStream. Pour en savoir plus, consultez la documentation de Proxy.

Il ne faut pas confondre cela avec la configuration de proxy qui a été configurée par l'utilisateur, par une configuration de profil d'entreprise ou (très probablement) par une configuration automatique du réseau (par exemple, le protocole Web Proxy Auto-Discovery). On parle généralement de configuration du proxy "système". Si elle est présente, le respect de la configuration du proxy système est souvent une exigence pour obtenir une connectivité locale et/ou Internet. CronetEngine gère déjà la configuration du proxy système en interne.

Une configuration de proxy définie via cette API est appelée configuration de proxy "d'application". La configuration du proxy de l'application et du système sont distinctes et, surtout, différentes. Actuellement, les configurations de proxy d'application et de système s'excluent mutuellement : si vous spécifiez ProxyOptions, la configuration de proxy du système est remplacée, le cas échéant. Cela peut entraîner des problèmes de connectivité dans certains scénarios où une configuration de proxy système est présente. Dans de tels scénarios, les utilisateurs peuvent se retrouver sans accès à Internet, sauf si ProxyOptions a été configuré avec une null finale de secours. Consultez la documentation ProxyOptions.

Paramètres
proxyOptions: ProxyOptions

ProxyOptions à utiliser pour UrlRequest, BiridirectionalStream et les connexions établies par le CronetEngine créé par ce générateur.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

Génère
java.lang.UnsupportedOperationException

si l'implémentation Cronet utilisée est trop ancienne pour prendre en charge ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
Voir aussi
setQuicOptions

setQuicOptions

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

Configure le comportement de Cronet lors de l'utilisation de QUIC. Pour en savoir plus, consultez la documentation de QuicOptions et des méthodes individuelles de QuicOptions.Builder.

Pertinent uniquement si enableQuic est activé.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

setStoragePath

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

Définit le répertoire pour le cache HTTP et le stockage des cookies. Le répertoire doit exister.

REMARQUE : N'utilisez pas le même répertoire de stockage avec plusieurs CronetEngine à la fois. L'accès au répertoire de stockage n'est pas compatible avec l'accès simultané par plusieurs CronetEngine.

Paramètres
value: String!

Chemin d'accès à un répertoire existant.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

setThreadPriority

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

Définit la priorité du thread interne de Cronet.

Paramètres
priority: Int

Priorité du thread interne de Cronet. Niveau de priorité Linux, de -20 (priorité de planification la plus élevée) à 19 (priorité de planification la plus faible). Pour en savoir plus sur les valeurs, consultez les valeurs setThreadPriority et THREAD_PRIORITY_*.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

setUserAgent

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

Remplace l'en-tête User-Agent pour toutes les requêtes. Un en-tête User-Agent défini explicitement (à l'aide de addHeader) remplacera une valeur définie à l'aide de cette fonction.

Paramètres
userAgent: String!

Chaîne User-Agent à utiliser pour toutes les requêtes.

Renvoie
CronetEngine.Builder!

le générateur pour faciliter l'enchaînement.

Propriétés protégées

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

Représentation JSON des options expérimentales.