UrlRequest.Builder

public abstract class UrlRequest.Builder


Builder per UrlRequest s. Consente di configurare le richieste prima di costruirle con build. Il generatore può essere creato chiamando il numero newUrlRequestBuilder.

Riepilogo

Costanti

static final int

Priorità più alta per le richieste.

static final int

Priorità più bassa della richiesta.

static final int

Priorità bassa della richiesta.

static final int

Priorità della richiesta molto bassa.

static final int

Priorità media della richiesta.

Costruttori pubblici

Metodi pubblici

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

Aggiunge un'intestazione della richiesta.

UrlRequest.Builder

Associa l'oggetto annotazione a questa richiesta.

abstract UrlRequest.Builder

Indica che gli esecutori che questa richiesta utilizzeranno per notificare i callback (per UploadDataProvider e UrlRequest.Callback) eseguono intenzionalmente l'esecuzione inline, come directExecutor di Guava o java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder
bindToNetwork(long networkHandle)

Associa la richiesta all'handle di rete specificato.

abstract UrlRequest

Crea un UrlRequest utilizzando la configurazione all'interno di questo Builder.

abstract UrlRequest.Builder

Disabilita la cache per la richiesta.

abstract UrlRequest.Builder

Imposta il verbo del metodo HTTP da utilizzare per questa richiesta.

abstract UrlRequest.Builder
setPriority(int priority)

Imposta la priorità della richiesta, che deve essere uno dei valori REQUEST_PRIORITY_*.

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

Consente a Cronet di utilizzare il dizionario di compressione specificato per questa richiesta.

UrlRequest.Builder

Imposta un listener che viene richiamato dopo la restituzione di onCanceled(), onFailed() o onSucceeded().

UrlRequest.Builder

Imposta il tag android.net.TrafficStats da utilizzare per contabilizzare il traffico socket causato da questa richiesta.

UrlRequest.Builder

Imposta un UID specifico da utilizzare per il traffico socket causato da questa richiesta.

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

Imposta il fornitore di dati di caricamento.

Costanti

REQUEST_PRIORITY_HIGHEST

public static final int REQUEST_PRIORITY_HIGHEST = 4

Priorità più alta per le richieste. Trasferito a setPriority.

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

Priorità più bassa della richiesta. Trasferito a setPriority.

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

Priorità bassa della richiesta. Trasferito a setPriority.

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

Priorità della richiesta molto bassa. Trasferito a setPriority.

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

Priorità media della richiesta. Trasferito a setPriority. Questa è la priorità predefinita assegnata alla richiesta.

Costruttori pubblici

Builder

public Builder()

Metodi pubblici

addHeader

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

Aggiunge un'intestazione della richiesta.

Parametri
String header

nome dell'intestazione.

String value

valore dell'intestazione.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

Associa l'oggetto annotazione a questa richiesta. Può aggiungerne più di uno. Trasferito a un RequestFinishedInfo.Listener, vedi getAnnotations.

Parametri
Object annotation

un oggetto da passare a RequestFinishedInfo.Listener con un RequestFinishedInfo.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

Indica che gli esecutori che questa richiesta utilizzeranno per notificare i callback (per UploadDataProvider e UrlRequest.Callback) eseguono intenzionalmente l'esecuzione inline, come directExecutor di Guava o java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Avviso:questa opzione semplifica il blocco accidentale del thread di rete. Non deve essere utilizzato se i callback eseguono operazioni di I/O su disco, acquisiscono blocchi o chiamano altro codice che non controlli e non verifichi attentamente.

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

Associa la richiesta all'handle di rete specificato. Cronet invierà questa richiesta solo utilizzando la rete associata a questo handle. Se la rete si disconnette, la richiesta non andrà a buon fine. L'errore esatto dipende dalla fase di elaborazione della richiesta al momento della disconnessione della rete. Gli handle di rete possono essere ottenuti tramite Network#getNetworkHandle. Disponibile solo a partire da Android Marshmallow.

Parametri
long networkHandle

l'handle di rete a cui associare la richiesta. Specifica UNBIND_NETWORK_HANDLE per annullare l'associazione.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

build

public abstract UrlRequest build()

Crea un UrlRequest utilizzando la configurazione all'interno di questo Builder. La UrlRequest restituita può essere avviata chiamando il numero start.

Resi
UrlRequest

UrlRequest costruito utilizzando la configurazione all'interno di questo Builder.

disableCache

public abstract UrlRequest.Builder disableCache()

Disabilita la cache per la richiesta. Se il contesto non è configurato per utilizzare la cache, questa chiamata non ha alcun effetto.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

Imposta il verbo del metodo HTTP da utilizzare per questa richiesta.

Il valore predefinito quando questo metodo non viene chiamato è "GET" se la richiesta non ha corpo o "POST" se ne ha uno.

Parametri
String method

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

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

Imposta la priorità della richiesta, che deve essere uno dei valori REQUEST_PRIORITY_*. Se questo metodo non viene chiamato, alla richiesta viene assegnata la priorità REQUEST_PRIORITY_MEDIUM.

Parametri
int priority

la priorità della richiesta, che deve essere uno dei valori REQUEST_PRIORITY_*.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

setRawCompressionDictionary

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

Consente a Cronet di utilizzare il dizionario di compressione specificato per questa richiesta. Se specificato, Cronet potrebbe segnalare al server la disponibilità del dizionario di compressione. Affinché questa operazione abbia effetto, CronetEngine che eseguirà questa richiesta deve essere configurato per abilitare uno schema di compressione che supporti dizionari esterni. Questa implementazione parziale della bozza draft-ietf-httpbis-compression-dictionary all'interno di Cronet. Cronet non gestirà direttamente le intestazioni di risposta "Use-As-Dictionary", ma si affiderà all'incorporatore per: gestirle e chiamare in un secondo momento UrlRequest.Builder#setCompressionDictionary per le richieste che corrispondono alle regole di Use-As-Dictionary; oppure recuperare i dizionari di compressione tramite un altro meccanismo out-of-band e chiamare in un secondo momento UrlRequest.Builder#setCompressionDictionary. Cronet interpreterà il dizionario in modo che corrisponda solo a questa UrlRequest. Se la richiesta viene reindirizzata e l'incorporatore decide di seguire il reindirizzamento, il dizionario corrisponderà anche al nuovo URL.

Parametri
byte[] dictionarySha256Hash

l'hash SHA-256 del dizionario di compressione specificato.

ByteBuffer dictionary

il dizionario di compressione che Cronet può utilizzare per questa UrlRequest. Deve essere un ByteBuffer diretto.

String dictionaryId

l'ID facoltativo associato a questo dizionario, deve essere una stringa vuota se non è presente. Se presente, questo valore verrà inviato tramite l'intestazione Dictionary-ID. Devi specificarlo se il server ha specificato un ID nella risposta "Use-As-Dictionary" (Usa come dizionario).

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

Imposta un listener che viene richiamato dopo la restituzione di onCanceled(), onFailed() o onSucceeded().

Il listener viene richiamato con le informazioni di fine richiesta su un java.util.concurrent.Executor fornito da getExecutor().

Parametri
RequestFinishedInfo.Listener listener

il listener per le richieste completate.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

Imposta il tag android.net.TrafficStats da utilizzare per contabilizzare il traffico socket causato da questa richiesta. Leggi i android.net.TrafficStats per avere ulteriori informazioni. Se non viene impostato alcun tag (ad es. questo metodo non viene chiamato), Android considera il traffico socket causato da questa richiesta come se il valore del tag fosse impostato su 0.

NOTA:l'impostazione di un tag non consente la condivisione dei socket con le richieste con altri tag, il che potrebbe influire negativamente sulle prestazioni vietando la condivisione delle connessioni. In altre parole, l'utilizzo di socket multiplexati (ad es. HTTP/2 e QUIC) sarà consentito solo se tutte le richieste hanno lo stesso tag socket.

Parametri
int tag

il valore del tag utilizzato per contabilizzare il traffico dei socket causato da questa richiesta. I tag compresi tra 0xFFFFFF00 e 0xFFFFFFFF sono riservati e utilizzati internamente dai servizi di sistema come android.app.DownloadManager quando eseguono il traffico per conto di un'applicazione.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

Imposta un UID specifico da utilizzare per il traffico socket causato da questa richiesta. Consulta android.net.TrafficStats per ulteriori informazioni. Progettato per l'utilizzo durante l'esecuzione di un'operazione per conto di un'altra applicazione. Il chiamante deve disporre dell'autorizzazione MODIFY_NETWORK_ACCOUNTING. Per impostazione predefinita, il traffico viene attribuito all'UID del chiamante.

NOTA:l'impostazione di un UID non consente la condivisione di socket con richieste con altri UID, il che potrebbe influire negativamente sulle prestazioni vietando la condivisione delle connessioni. In altre parole, l'utilizzo di socket multiplexati (ad es. HTTP/2 e QUIC) sarà consentito solo se tutte le richieste hanno lo stesso UID impostato.

Parametri
int uid

l'UID a cui attribuire il traffico socket causato da questa richiesta.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.

setUploadDataProvider

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

Imposta il fornitore di dati di caricamento. Se non è impostato esplicitamente, il metodo viene impostato su "POST". L'avvio della richiesta genererà un'eccezione se non è impostata un'intestazione Content-Type.

Parametri
UploadDataProvider uploadDataProvider

responsabile della fornitura dei dati di caricamento.

Executor executor

Tutti i metodi uploadDataProvider verranno richiamati utilizzando questo Executor. Può essere facoltativamente lo stesso Executor utilizzato dalla richiesta stessa.

Resi
UrlRequest.Builder

lo strumento di creazione per facilitare il concatenamento.