UrlRequest.Builder

public 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

static final int

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

static final int

Priorité la plus basse pour les requêtes.

static final int

Priorité faible pour la demande.

static final int

Priorité de requête très faible.

static final int

Priorité moyenne de la demande.

Constructeurs publics

Méthodes publiques

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

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

UrlRequest.Builder

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(long networkHandle)

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

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

UrlRequest.Builder
@UrlRequest.Experimental
setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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

public static final int REQUEST_PRIORITY_HIGHEST = 4

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

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

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

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

Priorité faible pour la demande. Transmis à setPriority.

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

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

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

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

Constructeurs publics

Builder

public Builder()

Méthodes publiques

addHeader

public abstract UrlRequest.Builder addHeader(String header, String value)

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

Paramètres
String header

Nom de l'en-tête.

String value

valeur de l'en-tête.

Renvoie
UrlRequest.Builder

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

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

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

Paramètres
Object annotation

Objet à transmettre au RequestFinishedInfo.Listener avec un RequestFinishedInfo.

Renvoie
UrlRequest.Builder

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

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

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

public UrlRequest.Builder bindToNetwork(long networkHandle)

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
long networkHandle

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

public abstract UrlRequest build()

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

public abstract UrlRequest.Builder disableCache()

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

public abstract UrlRequest.Builder setHttpMethod(String method)

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

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

Renvoie
UrlRequest.Builder

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

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

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
int priority

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
public UrlRequest.Builder setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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
byte[] dictionarySha256Hash

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

ByteBuffer dictionary

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

String dictionaryId

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

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

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
RequestFinishedInfo.Listener listener

Écouteur pour les requêtes terminées.

Renvoie
UrlRequest.Builder

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

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

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
int tag

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

public UrlRequest.Builder setTrafficStatsUid(int uid)

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
int uid

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

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

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.