UrlRequest.Builder

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

const Int

Höchste Priorität für Anfragen.

const Int

Niedrigste Anfragepriorität.

const Int

Niedrige Anfragepriorität

const Int

Die Priorität der Anfrage ist sehr niedrig.

const Int

Mittlere Anfragepriorität.

Öffentliche Konstruktoren

Öffentliche Funktionen

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

Fügt einen Anfrageheader hinzu.

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

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(networkHandle: Long)

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(priority: Int)

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

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

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

const val REQUEST_PRIORITY_HIGHEST = 4: Int

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

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

Niedrigste Anfragepriorität. An setPriority weitergeleitet.

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

Niedrige Anfragepriorität An setPriority weitergeleitet.

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

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

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

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

Öffentliche Konstruktoren

Builder

Builder()

Öffentliche Funktionen

addHeader

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

Fügt einen Anfrageheader hinzu.

Parameter
header: String!

Headername.

value: String!

Headerwert.

Gibt Folgendes zurück:
UrlRequest.Builder!

Der Builder, um die Verkettung zu ermöglichen.

addRequestAnnotation

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

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

Parameter
annotation: Any!

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

abstract fun allowDirectExecutor(): 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.

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

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

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
networkHandle: Long

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

abstract fun build(): UrlRequest!

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

abstract fun disableCache(): UrlRequest.Builder!

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

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

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

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

Gibt Folgendes zurück:
UrlRequest.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setPriority

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

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
priority: Int

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
fun setRawCompressionDictionary(
    dictionarySha256Hash: ByteArray!,
    dictionary: ByteBuffer!,
    dictionaryId: String!
): UrlRequest.Builder!

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
dictionarySha256Hash: ByteArray!

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

dictionary: ByteBuffer!

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

dictionaryId: String!

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

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

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

Der Listener für abgeschlossene Anfragen.

Gibt Folgendes zurück:
UrlRequest.Builder!

Der Builder, um die Verkettung zu ermöglichen.

setTrafficStatsTag

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

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
tag: Int

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

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

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
uid: Int

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

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

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.