UrlRequest.Builder

abstract class UrlRequest.Builder


Compilateur pour les UrlRequest. Permet de configurer les requêtes avant de les construire avec build. Le générateur peut être créé en appelant newUrlRequestBuilder.

Résumé

Constantes

const Int

Priorité la plus élevée pour les demandes.

const Int

Priorité la plus basse pour les requêtes.

const Int

Priorité faible pour la demande.

const Int

Priorité de la requête très faible.

const Int

Priorité moyenne de la demande.

Constructeurs publics

Fonctions publiques

abstract UrlRequest.Builder!
addHeader(header: String!, value: String!)

Ajoute un en-tête de requête.

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

Associe l'objet d'annotation à cette requête.

abstract UrlRequest.Builder!

Indique que les exécuteurs que cette requête utilisera pour notifier les rappels (pour les UploadDataProvider et les UrlRequest.Callback) effectuent intentionnellement une exécution intégrée, comme directExecutor de Guava ou java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder!
bindToNetwork(networkHandle: Long)

Associe la requête au handle réseau spécifié.

abstract UrlRequest!

Crée un UrlRequest à l'aide de la configuration de ce Builder.

abstract UrlRequest.Builder!

Désactive le cache pour la requête.

abstract UrlRequest.Builder!

Définit le verbe de la méthode HTTP à utiliser pour cette requête.

abstract UrlRequest.Builder!
setPriority(priority: Int)

Définit la priorité de la requête, qui doit correspondre à l'une des valeurs REQUEST_PRIORITY_*.

UrlRequest.Builder!
@UrlRequest.Experimental
setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
)

Permet à Cronet d'utiliser le dictionnaire de compression spécifié pour cette requête.

UrlRequest.Builder!

Définit un écouteur qui est appelé après le retour de onCanceled(), onFailed() ou onSucceeded().

UrlRequest.Builder!

Définit le tag android.net.TrafficStats à utiliser lors de la comptabilisation du trafic de socket généré par cette requête.

UrlRequest.Builder!

Définit un UID spécifique à utiliser lors de la comptabilisation du trafic de socket généré par cette requête.

abstract UrlRequest.Builder!
setUploadDataProvider(
    uploadDataProvider: UploadDataProvider!,
    executor: Executor!
)

Définit le fournisseur de données d'importation.

Constantes

REQUEST_PRIORITY_HIGHEST

const val REQUEST_PRIORITY_HIGHEST = 4: Int

Priorité la plus élevée pour les demandes. Transmis à setPriority.

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

Priorité la plus basse pour les requêtes. Transmis à setPriority.

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

Priorité faible pour la demande. Transmis à setPriority.

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

Priorité de la requête très faible. Transmis à setPriority.

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

Priorité moyenne de la demande. Transmis à setPriority. Il s'agit de la priorité par défaut attribuée à la demande.

Constructeurs publics

Compilateur

Builder()

Fonctions publiques

addHeader

abstract fun addHeader(header: String!, value: String!): UrlRequest.Builder!

Ajoute un en-tête de requête.

Paramètres
header: String!

Nom de l'en-tête.

value: String!

valeur de l'en-tête.

Renvoie
UrlRequest.Builder!

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

addRequestAnnotation

fun addRequestAnnotation(annotation: Any!): UrlRequest.Builder!

Associe l'objet d'annotation à cette requête. Vous pouvez en ajouter plusieurs. Transmis à un RequestFinishedInfo.Listener, voir getAnnotations.

Paramètres
annotation: Any!

Objet à transmettre au RequestFinishedInfo.Listener avec un RequestFinishedInfo.

Renvoie
UrlRequest.Builder!

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

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

Indique que les exécuteurs que cette requête utilisera pour notifier les rappels (pour les UploadDataProvider et les UrlRequest.Callback) effectuent intentionnellement une exécution intégrée, comme directExecutor de Guava ou java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Avertissement : Cette option permet de bloquer facilement le thread réseau par erreur. Il ne doit pas être utilisé si vos rappels effectuent des E/S de disque, acquièrent des verrous ou appellent d'autres codes que vous ne contrôlez et n'auditez pas avec soin.

bindToNetwork

fun bindToNetwork(networkHandle: Long): UrlRequest.Builder!

Associe la requête au handle réseau spécifié. Cronet n'enverra cette requête qu'en utilisant le réseau associé à ce handle. Si ce réseau se déconnecte, la requête échouera. L'erreur exacte dépendra de l'étape du 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

le handle réseau auquel l'opération doit être liée. Spécifiez UNBIND_NETWORK_HANDLE pour dissocier.

Renvoie
UrlRequest.Builder!

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

build

abstract fun build(): UrlRequest!

Crée un UrlRequest à l'aide de la configuration de ce Builder. Le UrlRequest renvoyé peut ensuite être démarré en appelant start.

Renvoie
UrlRequest!

construit UrlRequest à l'aide de la configuration dans ce Builder.

Désactiver le cache

abstract fun disableCache(): UrlRequest.Builder!

Désactive le cache pour la requête. Si le contexte n'est pas configuré pour utiliser le cache, cet appel n'a aucun effet.

Renvoie
UrlRequest.Builder!

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

setHttpMethod

abstract fun setHttpMethod(method: String!): UrlRequest.Builder!

Définit le verbe de la méthode HTTP à utiliser pour cette requête.

La valeur par défaut lorsque cette méthode n'est pas appelée est "GET" si la requête n'a pas de corps ou "POST" si elle en a un.

Paramètres
method: String!

"GET", "HEAD", "DELETE", "POST" ou "PUT".

Renvoie
UrlRequest.Builder!

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

setPriority

abstract fun setPriority(priority: Int): UrlRequest.Builder!

Définit la priorité de la requête, qui doit correspondre à l'une des valeurs REQUEST_PRIORITY_*. La requête reçoit la priorité REQUEST_PRIORITY_MEDIUM si cette méthode n'est pas appelée.

Paramètres
priority: Int

Priorité de la requête, qui doit correspondre à l'une des valeurs REQUEST_PRIORITY_*.

Renvoie
UrlRequest.Builder!

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

setRawCompressionDictionary

@UrlRequest.Experimental
fun setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
): UrlRequest.Builder!

Permet à Cronet d'utiliser le dictionnaire de compression spécifié pour cette requête. Si cette option est spécifiée, Cronet peut signaler au serveur la disponibilité du dictionnaire de compression en question. Pour que cela ait un effet, le CronetEngine qui exécutera cette requête doit avoir été configuré pour activer un schéma de compression compatible avec les dictionnaires externes. Cela implémente partiellement draft-ietf-httpbis-compression-dictionary dans Cronet. Cronet ne gérera pas directement les en-têtes de réponse "Use-As-Dictionary". Il s'appuiera plutôt sur l'intégrateur pour les gérer et appeler ensuite UrlRequest.Builder#setCompressionDictionary pour les requêtes qui correspondent aux règles de "Use-As-Dictionary", ou pour récupérer les dictionnaires de compression via un autre mécanisme hors bande et appeler ensuite UrlRequest.Builder#setCompressionDictionary. Cronet interprétera le dictionnaire comme correspondant uniquement à cette UrlRequest. Si cette requête est redirigée et que l'intégrateur décide de suivre la redirection, le dictionnaire correspondra également à la nouvelle URL.

Paramètres
dictionarySha256Hash: ByteArray!

Hachage SHA-256 du dictionnaire de compression spécifié.

dictionary: ByteBuffer!

Dictionnaire de compression que Cronet peut utiliser pour cette UrlRequest. Il doit s'agir d'un ByteBuffer direct.

dictionaryId: String!

ID facultatif associé à ce dictionnaire. Il doit s'agir d'une chaîne vide s'il est manquant. Si elle est présente, elle sera envoyée via l'en-tête Dictionary-ID. Vous devez le spécifier si le serveur a indiqué un ID dans sa réponse "Use-As-Dictionary".

Renvoie
UrlRequest.Builder!

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

setRequestFinishedListener

fun setRequestFinishedListener(listener: RequestFinishedInfo.Listener!): UrlRequest.Builder!

Définit un écouteur qui est appelé après le retour de onCanceled(), onFailed() ou onSucceeded().

L'écouteur est appelé avec les informations de fin de requête sur un java.util.concurrent.Executor fourni par getExecutor().

Paramètres
listener: RequestFinishedInfo.Listener!

Écouteur pour les requêtes terminées.

Renvoie
UrlRequest.Builder!

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

setTrafficStatsTag

fun setTrafficStatsTag(tag: Int): UrlRequest.Builder!

Définit le tag android.net.TrafficStats à utiliser lors de la comptabilisation du trafic de socket généré par cette requête. Pour en savoir plus, consultez les android.net.TrafficStats. Si aucun tag n'est défini (par exemple, si cette méthode n'est pas appelée), Android comptabilise le trafic de socket généré par cette requête comme si la valeur du tag était définie sur 0.

REMARQUE : Définir un tag interdit le partage de sockets avec des requêtes comportant d'autres tags, ce qui peut nuire aux performances en interdisant le partage de connexions. En d'autres termes, l'utilisation de sockets multiplexés (HTTP/2 et QUIC, par exemple) ne sera autorisée que si toutes les requêtes ont le même tag de socket.

Paramètres
tag: Int

Valeur du tag utilisé pour comptabiliser le trafic de socket généré par cette requête. Les tags compris entre 0xFFFFFF00 et 0xFFFFFFFF sont réservés et utilisés en interne par les services système tels que android.app.DownloadManager lors de l'exécution du trafic pour le compte d'une application.

Renvoie
UrlRequest.Builder!

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

setTrafficStatsUid

fun setTrafficStatsUid(uid: Int): UrlRequest.Builder!

Définit un UID spécifique à utiliser lors de la comptabilisation du trafic de socket généré par cette requête. Pour en savoir plus, consultez android.net.TrafficStats. Conçu pour être utilisé lors d'une opération effectuée au nom d'une autre application. L'appelant doit disposer de l'autorisation MODIFY_NETWORK_ACCOUNTING. Par défaut, le trafic est attribué à l'UID de l'appelant.

REMARQUE : Définir un UID interdit le partage de sockets avec des requêtes ayant d'autres UID, ce qui peut avoir un impact négatif sur les performances en interdisant le partage de connexions. En d'autres termes, l'utilisation de sockets multiplexés (par exemple, HTTP/2 et QUIC) ne sera autorisée que si toutes les requêtes ont le même UID défini.

Paramètres
uid: Int

UID permettant d'attribuer le trafic de socket généré par cette requête.

Renvoie
UrlRequest.Builder!

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

setUploadDataProvider

abstract fun setUploadDataProvider(
    uploadDataProvider: UploadDataProvider!,
    executor: Executor!
): UrlRequest.Builder!

Définit le fournisseur de données d'importation. La méthode passe à "POST" si elle n'est pas définie explicitement. Le lancement de la requête génère une exception si aucun en-tête Content-Type n'est défini.

Paramètres
uploadDataProvider: UploadDataProvider!

est responsable de la fourniture des données à importer.

executor: Executor!

Toutes les méthodes uploadDataProvider seront appelées à l'aide de ce Executor. Peut éventuellement être le même Executor que celui utilisé par la requête elle-même.

Renvoie
UrlRequest.Builder!

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