JavaCronetEngine

class JavaCronetEngine : CronetEngineBase


CronetEngine soutenu par java.net.HttpURLConnection.

Ne prend pas en charge les journaux réseau, la mesure des données transférées, bidistream, le cache ni la priorité.

Résumé

Constructeurs publics

Fonctions publiques

Unit

Enregistre un écouteur qui est appelé après la fin de chaque requête avec les informations de la requête.

Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau constate un temps d'aller-retour d'échantillon.

Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau observe une mesure du débit d'échantillon.

Unit
bindToNetwork(networkHandle: Long)

Lie le moteur au handle réseau spécifié.

Unit
configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
)

Configure l'estimateur de qualité du réseau pour les tests.

ExperimentalUrlRequest!
createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
)
URLStreamHandlerFactory!

Crée un URLStreamHandlerFactory pour gérer le trafic HTTP et HTTPS.

Int

Renvoie le nombre de requêtes actives.

Int

Renvoie l'estimation du débit descendant (en kilobits par seconde) calculée par l'estimateur de qualité du réseau.

Int

Renvoie une estimation du type de connexion effectif calculé par l'estimateur de qualité du réseau.

ByteArray<Byte>!

Cette fonction est obsolète.

Dans les versions modernes de Cronet, cette méthode renvoie toujours un tableau vide.

Int

Renvoie l'estimation du temps d'aller-retour HTTP (en millisecondes) calculée par l'estimateur de qualité du réseau.

Int

Renvoie l'estimation du RTT de transport (en millisecondes) calculée par l'estimateur de qualité du réseau.

String!
URLConnection!

Établit une nouvelle connexion à la ressource spécifiée par URLurl.

URLConnection!
openConnection(url: URL!, proxy: Proxy!)

Établit une nouvelle connexion à la ressource spécifiée par URLurl à l'aide du proxy donné.

Unit

Supprime un écouteur de requête terminée.

Unit

Supprime un écouteur des temps d'aller-retour s'il a été précédemment enregistré avec addRttListener.

Unit

Supprime un écouteur de débit.

Unit

Arrête le CronetEngine s'il n'y a aucune requête active, sinon génère une exception.

Unit
startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int)

Démarre la journalisation NetLog dans un répertoire spécifié avec une taille limitée.

Unit
startNetLogToFile(fileName: String!, logAll: Boolean)

Démarre la consignation NetLog dans un fichier.

Unit

Arrête la journalisation NetLog et vide le fichier sur le disque.

Fonctions protégées

ExperimentalBidirectionalStream!
createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
)

Constantes héritées

Depuis org.chromium.net.CronetEngine
const Int

La valeur du nombre de requêtes actives est inconnue

Depuis org.chromium.net.impl.CronetEngineBase

Fonctions héritées

Depuis org.chromium.net.impl.CronetEngineBase
ExperimentalUrlRequest.Builder!
newUrlRequestBuilder(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!
)

Crée un compilateur pour UrlRequest.

Constructeurs publics

JavaCronetEngine

JavaCronetEngine(builder: CronetEngineBuilderImpl!)

Fonctions publiques

addRequestFinishedListener

fun addRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

Enregistre un écouteur qui est appelé après la fin de chaque requête avec les informations de la requête.

L'écouteur est appelé sur un java.util.concurrent.Executor fourni par l'écouteur.

Paramètres
listener: RequestFinishedInfo.Listener!

Écouteur pour les requêtes terminées.

addRttListener

fun addRttListener(listener: NetworkQualityRttListener!): Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau constate un temps d'aller-retour d'échantillon. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée. Les temps d'aller-retour peuvent être enregistrés à différents niveaux de la pile réseau, y compris TCP, QUIC et au niveau de la requête d'URL. L'écouteur est appelé sur le java.util.concurrent.Executor transmis à enableNetworkQualityEstimator.

Paramètres
listener: NetworkQualityRttListener!

l'écouteur des délais aller-retour.

addThroughputListener

fun addThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Enregistre un écouteur qui est appelé chaque fois que l'estimateur de qualité du réseau observe une mesure du débit d'échantillon. Cette méthode doit être appelée après enableNetworkQualityEstimator. Les observations du débit sont calculées en mesurant les octets lus sur l'interface réseau active lorsque au moins une réponse d'URL est reçue. L'écouteur est appelé sur le java.util.concurrent.Executor transmis à enableNetworkQualityEstimator.

Paramètres
listener: NetworkQualityThroughputListener!

l'écouteur du débit.

bindToNetwork

fun bindToNetwork(networkHandle: Long): Unit

Lie le moteur au handle réseau spécifié. Toutes les demandes créées via ce moteur utiliseront le réseau associé à ce compte. Si ce réseau se déconnecte, toutes les requêtes échoueront. L'erreur exacte dépendra de l'étape de traitement de la requête au moment de la déconnexion du réseau. Les identifiants réseau peuvent être obtenus via Network#getNetworkHandle. Disponible uniquement à partir d'Android Marshmallow.

Paramètres
networkHandle: Long

Handle réseau auquel associer le moteur. Spécifiez UNBIND_NETWORK_HANDLE pour dissocier.

configureNetworkQualityEstimatorForTesting

fun configureNetworkQualityEstimatorForTesting(
    useLocalHostRequests: Boolean,
    useSmallerResponses: Boolean,
    disableOfflineCheck: Boolean
): Unit

Configure l'estimateur de qualité du réseau pour les tests. Cette méthode doit être appelée avant l'ajout des écouteurs de temps d'aller-retour et de débit, et après l'activation de l'estimateur de qualité du réseau.

Paramètres
useLocalHostRequests: Boolean

inclure les requêtes adressées à localhost dans les estimations.

useSmallerResponses: Boolean

inclure les petites réponses dans les estimations du débit.

disableOfflineCheck: Boolean

Si la valeur est définie sur "true", les vérifications de l'état hors connexion de l'appareil sont désactivées lors du calcul du type de connexion effectif ou lors de l'écriture des préférences.

createRequest

fun createRequest(
    url: String!,
    callback: UrlRequest.Callback!,
    executor: Executor!,
    priority: Int,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    disableCache: Boolean,
    disableConnectionMigration: Boolean,
    allowDirectExecutor: Boolean,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    requestFinishedListener: RequestFinishedInfo.Listener!,
    idempotency: Int,
    networkHandle: Long,
    method: String!,
    requestHeaders: ArrayList<(Mutable)Map.Entry<String!, String!>!>!,
    uploadDataProvider: UploadDataProvider!,
    uploadDataProviderExecutor: Executor!,
    sharedDictionaryHash: ByteArray!,
    sharedDictionary: ByteBuffer!,
    sharedDictionaryId: String
): ExperimentalUrlRequest!

createURLStreamHandlerFactory

fun createURLStreamHandlerFactory(): URLStreamHandlerFactory!

Crée un URLStreamHandlerFactory pour gérer le trafic HTTP et HTTPS. Une instance de cette classe peut être installée via setURLStreamHandlerFactory, ce qui permet d'utiliser cette CronetEngine par défaut pour toutes les requêtes créées via openConnection.

Cronet n'utilise pas certaines fonctionnalités HTTP fournies par le système :

Bien que Cronet accepte et encourage les requêtes utilisant le protocole HTTPS, il n'est pas compatible avec l'API HttpsURLConnection. Ce manque de compatibilité inclut également l'impossibilité d'utiliser certaines fonctionnalités HTTPS fournies par le système :

Renvoie
URLStreamHandlerFactory!

une instance URLStreamHandlerFactory implémentée par ce CronetEngine.

getActiveRequestCount

fun getActiveRequestCount(): Int

Renvoie le nombre de requêtes actives.

Une requête devient "active" dans UrlRequest.start(), en supposant que cette méthode ne génère pas d'exception. Il devient inactif lorsque tous les rappels ont été renvoyés et qu'aucun autre rappel ne peut être déclenché à l'avenir. En pratique, cela signifie que la requête est inactive une fois que onSucceeded/onCanceled/onFailed a renvoyé une réponse et que tous les écouteurs de requête terminée ont renvoyé une réponse. Pour en savoir plus, consultez Cycle de vie des requêtes Cronet.

getDownstreamThroughputKbps

fun getDownstreamThroughputKbps(): Int

Renvoie l'estimation du débit descendant (en kilobits par seconde) calculée par l'estimateur de qualité du réseau. Définissez sur CONNECTION_METRIC_UNKNOWN si la valeur n'est pas disponible. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée.

Renvoie
Int

Estimation du débit descendant en kilobits par seconde.

getEffectiveConnectionType

fun getEffectiveConnectionType(): Int

Renvoie une estimation du type de connexion effectif calculé par l'estimateur de qualité du réseau. Appelez enableNetworkQualityEstimator pour commencer à calculer cette valeur.

Renvoie
Int

le type de connexion estimé. La valeur renvoyée est l'une des valeurs EFFECTIVE_CONNECTION_TYPE_* .

getGlobalMetricsDeltas

fun getGlobalMetricsDeltas(): ByteArray<Byte>!

getHttpRttMs

fun getHttpRttMs(): Int

Renvoie l'estimation du temps d'aller-retour HTTP (en millisecondes) calculée par l'estimateur de qualité du réseau. Définissez sur CONNECTION_METRIC_UNKNOWN si la valeur n'est pas disponible. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée.

Renvoie
Int

Estimation du temps de transmission aller-retour HTTP en millisecondes.

getTransportRttMs

fun getTransportRttMs(): Int

Renvoie l'estimation du RTT de transport (en millisecondes) calculée par l'estimateur de qualité du réseau. Définissez sur CONNECTION_METRIC_UNKNOWN si la valeur n'est pas disponible. Cette méthode doit être appelée après enableNetworkQualityEstimator, sinon une exception sera générée.

Renvoie
Int

Estimation du RTT de transport en millisecondes.

getVersionString

fun getVersionString(): String!
Renvoie
String!

Chaîne de version du moteur lisible par l'utilisateur.

openConnection

fun openConnection(url: URL!): URLConnection!

Établit une nouvelle connexion à la ressource spécifiée par URLurl.

Remarque : L'implémentation java.net.HttpURLConnection de Cronet est soumise à certaines limites. Pour en savoir plus, consultez createURLStreamHandlerFactory.

Paramètres
url: URL!

URL de la ressource à laquelle se connecter.

Renvoie
URLConnection!

une instance java.net.HttpURLConnection implémentée par ce CronetEngine.

Génère
java.io.IOException

si une erreur se produit lors de l'ouverture de la connexion.

openConnection

fun openConnection(url: URL!, proxy: Proxy!): URLConnection!

Établit une nouvelle connexion à la ressource spécifiée par URLurl à l'aide du proxy donné.

Remarque : L'implémentation java.net.HttpURLConnection de Cronet est soumise à certaines limites. Pour en savoir plus, consultez createURLStreamHandlerFactory.

Paramètres
url: URL!

URL de la ressource à laquelle se connecter.

proxy: Proxy!

Proxy à utiliser lors de l'établissement de la connexion.

Renvoie
URLConnection!

une instance java.net.HttpURLConnection implémentée par ce CronetEngine.

Génère
java.io.IOException

si une erreur se produit lors de l'ouverture de la connexion.

removeRequestFinishedListener

fun removeRequestFinishedListener(listener: RequestFinishedInfo.Listener!): Unit

Supprime un écouteur de requête terminée.

Paramètres
listener: RequestFinishedInfo.Listener!

l'écouteur à supprimer.

removeRttListener

fun removeRttListener(listener: NetworkQualityRttListener!): Unit

Supprime un écouteur des temps d'aller-retour s'il a été précédemment enregistré avec addRttListener. Cette méthode doit être appelée après l'ajout d'un NetworkQualityRttListener afin d'arrêter de recevoir des observations.

Paramètres
listener: NetworkQualityRttListener!

l'écouteur des délais aller-retour.

removeThroughputListener

fun removeThroughputListener(listener: NetworkQualityThroughputListener!): Unit

Supprime un écouteur de débit. Cette méthode doit être appelée après l'ajout d'un NetworkQualityThroughputListener avec addThroughputListener afin d'arrêter de recevoir des observations.

Paramètres
listener: NetworkQualityThroughputListener!

l'écouteur du débit.

shutdown

fun shutdown(): Unit

Arrête le CronetEngine s'il n'y a aucune requête active, sinon génère une exception.

Ne peut pas être appelé sur le thread réseau (le thread sur lequel Cronet appelle Executor, qui est différent du thread sur lequel Executor appelle les rappels). Peut bloquer jusqu'à ce que toutes les ressources de CronetEngine aient été nettoyées.

startNetLogToDisk

fun startNetLogToDisk(dirPath: String!, logAll: Boolean, maxSize: Int): Unit

Démarre la journalisation NetLog dans un répertoire spécifié avec une taille limitée. Le NetLog contient les événements émis par tous les CronetEngines actifs. NetLog est utile pour le débogage. Une fois la journalisation arrêtée stopNetLog, les données sont écrites dans netlog.json dans dirPath. Si la journalisation est interrompue, vous pouvez assembler manuellement les fichiers trouvés dans le sous-répertoire .inprogress à l'aide de https://chromium.googlesource.com/chromium/src/+/main/net/tools/stitch_net_log_files.py. Vous pouvez consulter le journal dans un navigateur Chrome en accédant à chrome://net-internals/#import.

Paramètres
dirPath: String!

Répertoire dans lequel le fichier netlog.json sera créé. dirPath doit déjà exister. Aucun fichier NetLog ne doit exister dans le répertoire. Si la journalisation est active, cette méthode est ignorée.

logAll: Boolean

true pour inclure les événements de base, les cookies utilisateur, les identifiants et tous les octets transférés dans le journal. Cette option présente un risque pour la confidentialité, car elle expose les identifiants de l'utilisateur. Elle ne doit être utilisée qu'avec le consentement de l'utilisateur et dans les situations où le journal ne sera pas public. false pour n'inclure que les événements de base.

maxSize: Int

Espace disque total maximal en octets qui doit être utilisé par NetLog. L'utilisation réelle de l'espace disque peut légèrement dépasser cette limite.

startNetLogToFile

fun startNetLogToFile(fileName: String!, logAll: Boolean): Unit

Démarre la consignation NetLog dans un fichier. Le NetLog contient les événements émis par tous les CronetEngines actifs. NetLog est utile pour le débogage. Vous pouvez afficher le fichier dans un navigateur Chrome en accédant à chrome://net-internals/#import.

Paramètres
fileName: String!

le chemin d'accès complet au fichier. Il ne doit pas être vide. Si le fichier existe, il est tronqué avant le début de l'opération. Si la journalisation est active, cette méthode est ignorée.

logAll: Boolean

true pour inclure les événements de base, les cookies utilisateur, les identifiants et tous les octets transférés dans le journal. Cette option présente un risque pour la confidentialité, car elle expose les identifiants de l'utilisateur. Elle ne doit être utilisée qu'avec le consentement de l'utilisateur et dans les situations où le journal ne sera pas public. false pour n'inclure que les événements de base.

stopNetLog

fun stopNetLog(): Unit

Arrête la journalisation NetLog et vide le fichier sur le disque. Si aucune session de journalisation n'est en cours, cet appel est ignoré.

Fonctions protégées

createBidirectionalStream

protected fun createBidirectionalStream(
    url: String!,
    callback: BidirectionalStream.Callback!,
    executor: Executor!,
    httpMethod: String!,
    requestHeaders: (Mutable)List<(Mutable)Map.Entry<String!, String!>!>!,
    @CronetEngineBase.StreamPriority priority: Int,
    delayRequestHeadersUntilFirstFlush: Boolean,
    connectionAnnotations: (Mutable)Collection<Any!>!,
    trafficStatsTagSet: Boolean,
    trafficStatsTag: Int,
    trafficStatsUidSet: Boolean,
    trafficStatsUid: Int,
    networkHandle: Long
): ExperimentalBidirectionalStream!