UrlRequest.Builder

public abstract class UrlRequest.Builder


Builder für UrlRequests. Ermöglicht das Konfigurieren von Anfragen, bevor sie mit build erstellt werden. Der Builder kann durch Aufrufen von newUrlRequestBuilder erstellt werden.

Zusammenfassung

Konstanten

static final int

Höchste Priorität für Anfragen.

static final int

Niedrigste Anfragepriorität.

static final int

Niedrige Anfragepriorität

static final int

Die Priorität der Anfrage ist sehr niedrig.

static final int

Mittlere Anfragepriorität.

Öffentliche Konstruktoren

Öffentliche Methoden

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

Fügt einen Anfrageheader hinzu.

UrlRequest.Builder

Verknüpft das Annotations-Objekt mit dieser Anfrage.

abstract UrlRequest.Builder

Markiert, dass die Executors, die in dieser Anfrage verwendet werden, um Callbacks zu benachrichtigen (für UploadDataProviders und UrlRequest.Callbacks), absichtlich Inline-Ausführung durchführen, z. B. directExecutor von Guava oder java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder
bindToNetwork(long networkHandle)

Bindet die Anfrage an das angegebene Netzwerk-Handle.

abstract UrlRequest

Erstellt einen UrlRequest mit der Konfiguration in diesem Builder.

abstract UrlRequest.Builder

Deaktiviert den Cache für die Anfrage.

abstract UrlRequest.Builder

Legt das HTTP-Methodenverb fest, das für diese Anfrage verwendet werden soll.

abstract UrlRequest.Builder
setPriority(int priority)

Legt die Priorität der Anfrage fest. Sie muss einer der REQUEST_PRIORITY_*-Werte sein.

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

Ermöglicht Cronet, das angegebene Komprimierungswörterbuch für diese Anfrage zu verwenden.

UrlRequest.Builder

Legt einen Listener fest, der nach der Rückgabe von onCanceled(), onFailed() oder onSucceeded() aufgerufen wird.

UrlRequest.Builder

Legt das android.net.TrafficStats-Tag fest, das verwendet werden soll, wenn der durch diese Anfrage verursachte Socket-Traffic berücksichtigt wird.

UrlRequest.Builder

Legt eine bestimmte UID fest, die bei der Abrechnung des Socket-Traffics verwendet werden soll, der durch diese Anfrage verursacht wird.

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

Legt den Datenanbieter für den Upload fest.

Konstanten

REQUEST_PRIORITY_HIGHEST

public static final int REQUEST_PRIORITY_HIGHEST = 4

Höchste Priorität für Anfragen. An setPriority weitergeleitet.

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

Niedrigste Anfragepriorität. An setPriority weitergeleitet.

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

Niedrige Anfragepriorität An setPriority weitergeleitet.

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

Die Priorität der Anfrage ist sehr niedrig. An setPriority weitergeleitet.

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

Mittlere Anfragepriorität. An setPriority weitergeleitet. Dies ist die Standardpriorität, die der Anfrage zugewiesen wird.

Öffentliche Konstruktoren

Builder

public Builder()

Öffentliche Methoden

addHeader

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

Fügt einen Anfrageheader hinzu.

Parameter
String header

Headername.

String value

Headerwert.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

Verknüpft das Annotations-Objekt mit dieser Anfrage. Sie können mehrere hinzufügen. An ein RequestFinishedInfo.Listener übergeben, siehe getAnnotations.

Parameter
Object annotation

Ein Objekt, das mit einem RequestFinishedInfo an das RequestFinishedInfo.Listener übergeben werden soll.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

Markiert, dass die Executors, die in dieser Anfrage verwendet werden, um Callbacks zu benachrichtigen (für UploadDataProviders und UrlRequest.Callbacks), absichtlich Inline-Ausführung durchführen, z. B. directExecutor von Guava oder java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Warnung:Mit dieser Option kann der Netzwerk-Thread leicht versehentlich blockiert werden. Sie sollten nicht verwendet werden, wenn in Ihren Callbacks Festplatten-I/O-Vorgänge ausgeführt, Sperren angefordert oder anderer Code aufgerufen wird, den Sie nicht sorgfältig kontrollieren und prüfen.

bindToNetwork

public UrlRequest.Builder bindToNetwork(long networkHandle)

Bindet die Anfrage an das angegebene Netzwerk-Handle. Cronet sendet diese Anfrage nur über das Netzwerk, das mit diesem Handle verknüpft ist. Wenn die Verbindung zum Netzwerk unterbrochen wird, schlägt die Anfrage fehl. Der genaue Fehler hängt davon ab, in welcher Phase der Verarbeitung der Anfrage die Verbindung zum Netzwerk unterbrochen wird. Netzwerk-Handles können über Network#getNetworkHandle abgerufen werden. Nur ab Android Marshmallow verfügbar.

Parameter
long networkHandle

Der Netzwerk-Handle, an den die Anfrage gebunden werden soll. Geben Sie UNBIND_NETWORK_HANDLE an, um die Bindung aufzuheben.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

Build

public abstract UrlRequest build()

Erstellt einen UrlRequest mit der Konfiguration in diesem Builder. Die zurückgegebene UrlRequest kann dann durch Aufrufen von start gestartet werden.

Gibt Folgendes zurück:
UrlRequest

UrlRequest wurde mit der Konfiguration in diesem Builder erstellt.

disableCache

public abstract UrlRequest.Builder disableCache()

Deaktiviert den Cache für die Anfrage. Wenn der Kontext nicht für die Verwendung des Cache eingerichtet ist, hat dieser Aufruf keine Auswirkungen.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

Legt das HTTP-Methodenverb fest, das für diese Anfrage verwendet werden soll.

Wenn diese Methode nicht aufgerufen wird, ist der Standardwert „GET“, wenn die Anfrage keinen Textkörper hat, und „POST“, wenn sie einen hat.

Parameter
String method

„GET“, „HEAD“, „DELETE“, „POST“ oder „PUT“.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

Legt die Priorität der Anfrage fest. Sie muss einer der REQUEST_PRIORITY_*-Werte sein. Der Anfrage wird die Priorität REQUEST_PRIORITY_MEDIUM zugewiesen, wenn diese Methode nicht aufgerufen wird.

Parameter
int priority

Die Priorität der Anfrage, die einer der REQUEST_PRIORITY_*-Werte sein sollte.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

setRawCompressionDictionary

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

Ermöglicht Cronet, das angegebene Komprimierungswörterbuch für diese Anfrage zu verwenden. Wenn diese Option angegeben ist, kann Cronet dem Server die Verfügbarkeit des angegebenen Komprimierungs-Dictionarys signalisieren. Damit dies wirksam wird, muss die CronetEngine, die diese Anfrage ausführt, so konfiguriert sein, dass ein Komprimierungsschema aktiviert ist, das externe Wörterbücher unterstützt. Damit wird der Entwurf „draft-ietf-httpbis-compression-dictionary“ teilweise in Cronet implementiert. Cronet verarbeitet keine „Use-As-Dictionary“-Antwortheader direkt, sondern verlässt sich stattdessen darauf, dass der Embedder sie verarbeitet und später UrlRequest.Builder#setCompressionDictionary für Anfragen aufruft, die den Regeln von „Use-As-Dictionary“ entsprechen, oder Komprimierungs-Dictionaries über einen anderen Out-of-Band-Mechanismus abruft und später UrlRequest.Builder#setCompressionDictionary aufruft. Cronet interpretiert das Dictionary so, dass es nur mit dieser UrlRequest übereinstimmt. Wenn die Anfrage weitergeleitet wird und der Einbettungscode der Weiterleitung folgt, stimmt das Dictionary auch mit der neuen URL überein.

Parameter
byte[] dictionarySha256Hash

Der SHA-256-Hash des angegebenen Komprimierungswörterbuchs.

ByteBuffer dictionary

Das Komprimierungs-Dictionary, das Cronet für diese UrlRequest verwenden kann. Dies muss ein direkter ByteBuffer sein.

String dictionaryId

Die optionale ID, die diesem Wörterbuch zugeordnet ist. Wenn sie fehlt, muss sie ein leerer String sein. Wenn vorhanden, wird sie über den Header „Dictionary-ID“ gesendet. Sie müssen dies angeben, wenn der Server in seiner „Use-As-Dictionary“-Antwort eine ID angegeben hat.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

setRequestFinishedListener

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

Legt einen Listener fest, der nach der Rückgabe von onCanceled(), onFailed() oder onSucceeded() aufgerufen wird.

Der Listener wird mit den Informationen zum Abschluss der Anfrage für ein java.util.concurrent.Executor aufgerufen, das von getExecutor() bereitgestellt wird.

Parameter
RequestFinishedInfo.Listener listener

Der Listener für abgeschlossene Anfragen.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

Legt das android.net.TrafficStats-Tag fest, das verwendet werden soll, wenn der durch diese Anfrage verursachte Socket-Traffic berücksichtigt wird. Weitere Informationen findest du in den android.net.TrafficStats. Wenn kein Tag festgelegt ist (z.B. wenn diese Methode nicht aufgerufen wird), berücksichtigt Android den durch diese Anfrage verursachten Socket-Traffic so, als wäre der Tag-Wert auf 0 gesetzt.

HINWEIS:Wenn Sie ein Tag festlegen, können Sockets nicht für Anfragen mit anderen Tags freigegeben werden. Dies kann sich negativ auf die Leistung auswirken, da keine Verbindungen gemeinsam genutzt werden können. Mit anderen Worten: Die Verwendung von Multiplex-Sockets (z.B. HTTP/2 und QUIC) ist nur zulässig, wenn alle Anfragen dasselbe Socket-Tag haben.

Parameter
int tag

Der Tag-Wert, der bei der Berücksichtigung des Socket-Traffics verwendet wird, der durch diese Anfrage verursacht wird. Tags zwischen 0xFFFFFF00 und 0xFFFFFFFF sind reserviert und werden intern von Systemdiensten wie android.app.DownloadManager verwendet, wenn Traffic im Namen einer Anwendung ausgeführt wird.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

setTrafficStatsUid

public UrlRequest.Builder setTrafficStatsUid(int uid)

Legt eine bestimmte UID fest, die bei der Abrechnung des Socket-Traffics verwendet werden soll, der durch diese Anfrage verursacht wird. Weitere Informationen finden Sie unter android.net.TrafficStats. Für die Verwendung bei der Ausführung eines Vorgangs im Namen einer anderen Anwendung vorgesehen. Der Aufrufer muss die Berechtigung MODIFY_NETWORK_ACCOUNTING haben. Standardmäßig wird Traffic der UID des Anrufers zugeordnet.

HINWEIS:Wenn Sie eine UID festlegen, können Sockets nicht für Anfragen mit anderen UIDs freigegeben werden. Dies kann sich negativ auf die Leistung auswirken, da keine Verbindungsfreigabe möglich ist. Mit anderen Worten: Die Verwendung von Multiplex-Sockets (z.B. HTTP/2 und QUIC) ist nur zulässig, wenn für alle Anfragen dieselbe UID festgelegt ist.

Parameter
int uid

Die UID, die dem Socket-Traffic zugewiesen werden soll, der durch diese Anfrage verursacht wird.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.

setUploadDataProvider

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

Legt den Datenanbieter für den Upload fest. Die Methode wird auf „POST“ umgestellt, wenn sie nicht explizit festgelegt ist. Wenn kein Content-Type-Header festgelegt ist, wird beim Starten der Anfrage eine Ausnahme ausgelöst.

Parameter
UploadDataProvider uploadDataProvider

für die Bereitstellung der Upload-Daten verantwortlich ist.

Executor executor

Alle uploadDataProvider-Methoden werden mit diesem Executor aufgerufen. Kann optional dasselbe Executor sein, das für die Anfrage verwendet wird.

Gibt Folgendes zurück:
UrlRequest.Builder

Der Builder, um die Verkettung zu ermöglichen.