CronetEngine.Builder

public 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

static final int

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

static final int

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

static final int

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

static final int

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

Champs protégés

JSONObject

Représentation JSON des options expérimentales.

Constructeurs publics

Builder(Context context)

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

Méthodes publiques

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

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

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

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

Indique si la compression Brotli est activée.

CronetEngine.Builder
enableHttp2(boolean value)

Indique si le protocole HTTP/2 est activé.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

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

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

Cette méthode est obsolète.

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

CronetEngine.Builder
setUserAgent(String userAgent)

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

Constantes

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

public static final int HTTP_CACHE_DISK = 3

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

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

public static final int HTTP_CACHE_IN_MEMORY = 1

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

Champs protégés

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

Représentation JSON des options expérimentales.

Constructeurs publics

Compilateur

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

Méthodes publiques

addPublicKeyPins

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

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

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.

Set<byte[]> pinsSha256

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.

boolean includeSubdomains

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

Date expirationDate

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

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

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

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

int port

Hôte du serveur compatible avec QUIC.

int alternatePort

Port alternatif à utiliser pour QUIC.

Renvoie
CronetEngine.Builder

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

build

public CronetEngine build()

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

Renvoie
CronetEngine

construit CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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

true pour activer Brotli, false pour désactiver.

Renvoie
CronetEngine.Builder

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

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

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

Paramètres
boolean value

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

Renvoie
CronetEngine.Builder

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

enableHttpCache

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

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

Paramètres
int cacheMode

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

long maxSize

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

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

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

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

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

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

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

Renvoie
CronetEngine.Builder

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

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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

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

Renvoie
CronetEngine.Builder

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

getDefaultUserAgent

public String getDefaultUserAgent()

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

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

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

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

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
CronetEngine.Builder.LibraryLoader loader

LibraryLoader à utiliser pour charger la bibliothèque native.

Renvoie
CronetEngine.Builder

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

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

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

setQuicOptions

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

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

public CronetEngine.Builder setStoragePath(String value)

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

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

Renvoie
CronetEngine.Builder

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

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

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

Paramètres
int priority

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

public CronetEngine.Builder setUserAgent(String userAgent)

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

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

Renvoie
CronetEngine.Builder

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