UrlRequest.Builder

abstract class UrlRequest.Builder


Kreator dla UrlRequest. Umożliwia konfigurowanie żądań przed ich utworzeniem za pomocą funkcji build. Możesz utworzyć narzędzie do tworzenia, wywołując funkcję newUrlRequestBuilder.

Podsumowanie

Stałe

const Int

Najwyższy priorytet żądania.

const Int

Najniższy priorytet żądania.

const Int

Niski priorytet żądania.

const Int

Bardzo niski priorytet żądania.

const Int

Żądanie o średnim priorytecie.

Konstruktory publiczne

Funkcje publiczne

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

Dodaje nagłówek żądania.

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

Powiązuje obiekt adnotacji z tym żądaniem.

abstract UrlRequest.Builder!

Oznacza, że wykonawcy, których użyje to żądanie do powiadamiania wywołań zwrotnych (w przypadku UploadDataProviderUrlRequest.Callback), celowo wykonują działanie w linii, np. directExecutor z biblioteki Guava lub java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder!
bindToNetwork(networkHandle: Long)

Wiąże żądanie z określonym uchwytem sieci.

abstract UrlRequest!

Tworzy UrlRequest za pomocą konfiguracji w tym Builder.

abstract UrlRequest.Builder!

Wyłącza pamięć podręczną dla żądania.

abstract UrlRequest.Builder!

Ustawia czasownik metody HTTP, który ma być używany w tym żądaniu.

abstract UrlRequest.Builder!
setPriority(priority: Int)

Ustawia priorytet żądania, który powinien być jedną z wartości REQUEST_PRIORITY_*.

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

Umożliwia Cronetowi używanie określonego słownika kompresji w przypadku tego żądania.

UrlRequest.Builder!

Ustawia odbiornik, który jest wywoływany po zwróceniu wartości onCanceled(), onFailed() lub onSucceeded().

UrlRequest.Builder!

Ustawia tag android.net.TrafficStats, który będzie używany podczas rozliczania ruchu gniazda spowodowanego przez to żądanie.

UrlRequest.Builder!

Ustawia konkretny identyfikator UID, który będzie używany podczas rozliczania ruchu gniazda spowodowanego przez to żądanie.

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

Ustawia dostawcę danych przesyłanych przez użytkowników.

Stałe

REQUEST_PRIORITY_HIGHEST

const val REQUEST_PRIORITY_HIGHEST = 4: Int

Najwyższy priorytet żądania. Przekazano do setPriority.

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

Najniższy priorytet żądania. Przekazano do setPriority.

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

Niski priorytet żądania. Przekazano do setPriority.

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

Bardzo niski priorytet żądania. Przekazano do setPriority.

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

Żądanie o średnim priorytecie. Przekazano do setPriority. Jest to domyślny priorytet przypisany do żądania.

Konstruktory publiczne

Monter

Builder()

Funkcje publiczne

addHeader

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

Dodaje nagłówek żądania.

Parametry
header: String!

nazwę nagłówka.

value: String!

wartość nagłówka.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

addRequestAnnotation

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

Powiązuje obiekt adnotacji z tym żądaniem. Możesz dodać więcej niż jeden. Przekazywane do RequestFinishedInfo.Listener, patrz getAnnotations.

Parametry
annotation: Any!

obiekt do przekazania do RequestFinishedInfo.Listener z właściwością RequestFinishedInfo.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

Oznacza, że wykonawcy, których użyje to żądanie do powiadamiania wywołań zwrotnych (w przypadku UploadDataProviderUrlRequest.Callback), celowo wykonują działanie w linii, np. directExecutor z biblioteki Guava lub java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Ostrzeżenie: ta opcja ułatwia przypadkowe zablokowanie wątku sieciowego. Nie należy go używać, jeśli wywołania zwrotne wykonują operacje wejścia/wyjścia na dysku, uzyskują blokady lub wywołują inny kod, nad którym nie masz pełnej kontroli i którego nie możesz dokładnie sprawdzić.

bindToNetwork

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

Wiąże żądanie z określonym uchwytem sieci. Cronet wyśle tę prośbę tylko za pomocą sieci powiązanej z tym uchwytem. Jeśli ta sieć zostanie odłączona, żądanie nie zostanie zrealizowane. Dokładny błąd zależy od etapu przetwarzania żądania, na którym nastąpi odłączenie sieci. Uchwyty sieci można uzyskać za pomocą Network#getNetworkHandle. Dostępne tylko na urządzeniach z Androidem Marshmallow.

Parametry
networkHandle: Long

uchwyt sieci, do którego ma być powiązana prośba. Aby usunąć powiązanie, wpisz UNBIND_NETWORK_HANDLE.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

kompilacja

abstract fun build(): UrlRequest!

Tworzy UrlRequest za pomocą konfiguracji w tym Builder. Zwrócony UrlRequest można następnie uruchomić, wywołując start.

Zwraca
UrlRequest!

skonstruowany UrlRequest na podstawie konfiguracji w tym Builder.

disableCache

abstract fun disableCache(): UrlRequest.Builder!

Wyłącza pamięć podręczną dla żądania. Jeśli kontekst nie jest skonfigurowany do korzystania z pamięci podręcznej, to wywołanie nie ma żadnego efektu.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

setHttpMethod

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

Ustawia czasownik metody HTTP, który ma być używany w tym żądaniu.

Jeśli ta metoda nie zostanie wywołana, domyślnie używana jest metoda „GET”, jeśli żądanie nie ma treści, lub „POST”, jeśli ma treść.

Parametry
method: String!

„GET”, „HEAD”, „DELETE”, „POST” lub „PUT”.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

setPriority

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

Ustawia priorytet żądania, który powinien być jedną z wartości REQUEST_PRIORITY_*. Jeśli ta metoda nie zostanie wywołana, żądanie otrzyma priorytet REQUEST_PRIORITY_MEDIUM.

Parametry
priority: Int

priorytet żądania, który powinien być jedną z wartości REQUEST_PRIORITY_*.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

setRawCompressionDictionary

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

Umożliwia Cronetowi używanie określonego słownika kompresji w przypadku tego żądania. Jeśli jest określony, Cronet może sygnalizować serwerowi dostępność danego słownika kompresji. Aby to ustawienie miało jakikolwiek wpływ, silnik CronetEngine, który wykona to żądanie, musi być skonfigurowany tak, aby włączał schemat kompresji obsługujący słowniki zewnętrzne. Ta funkcja częściowo implementuje w Cronet roboczą wersję dokumentu draft-ietf-httpbis-compression-dictionary. Cronet nie będzie bezpośrednio obsługiwać nagłówków odpowiedzi „Use-As-Dictionary”. Zamiast tego będzie polegać na aplikacji osadzającej, która będzie je obsługiwać, a następnie wywoływać metodę UrlRequest.Builder#setCompressionDictionary w przypadku żądań zgodnych z regułami „Use-As-Dictionary”. Może też pobierać słowniki kompresji za pomocą innego mechanizmu poza pasmem, a następnie wywoływać metodę UrlRequest.Builder#setCompressionDictionary. Cronet zinterpretuje słownik jako pasujący tylko do tego obiektu UrlRequest. Jeśli żądanie zostanie przekierowane, a osoba umieszczająca zdecyduje się na przekierowanie, słownik będzie pasować również do nowego adresu URL.

Parametry
dictionarySha256Hash: ByteArray!

skrót SHA-256 określonego słownika kompresji.

dictionary: ByteBuffer!

słownik kompresji, którego Cronet może używać w przypadku tego obiektu UrlRequest. Musi to być bezpośredni obiekt ByteBuffer.

dictionaryId: String!

opcjonalny identyfikator powiązany z tym słownikiem. Jeśli go brakuje, musi to być pusty ciąg znaków. Jeśli ta wartość jest obecna, zostanie wysłana w nagłówku Dictionary-ID. Musisz to określić, jeśli serwer podał identyfikator w odpowiedzi „Use-As-Dictionary”.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

setRequestFinishedListener

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

Ustawia odbiornik, który jest wywoływany po zwróceniu wartości onCanceled(), onFailed() lub onSucceeded().

Słuchacz jest wywoływany z informacjami o zakończeniu żądania na obiekcie java.util.concurrent.Executor dostarczonym przez getExecutor().

Parametry
listener: RequestFinishedInfo.Listener!

odbiornik ukończonych żądań.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

setTrafficStatsTag

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

Ustawia tag android.net.TrafficStats, który będzie używany podczas rozliczania ruchu gniazda spowodowanego przez to żądanie. Przeczytaj android.net.TrafficStats, by dowiedzieć się więcej. Jeśli tag nie jest ustawiony (np. ta metoda nie jest wywoływana), Android uwzględnia ruch gniazda spowodowany przez to żądanie tak, jakby wartość tagu była ustawiona na 0.

UWAGA: ustawienie tagu uniemożliwia udostępnianie gniazd żądaniom z innymi tagami, co może negatywnie wpłynąć na wydajność, ponieważ uniemożliwia udostępnianie połączeń. Innymi słowy, używanie multipleksowanych gniazd (np. HTTP/2 i QUIC) będzie dozwolone tylko wtedy, gdy wszystkie żądania będą miały ten sam tag gniazda.

Parametry
tag: Int

wartość tagu używana podczas rozliczania ruchu gniazd spowodowanego przez to żądanie. Tagi z zakresu od 0xFFFFFF00 do 0xFFFFFFFF są zarezerwowane i używane wewnętrznie przez usługi systemowe, takie jak android.app.DownloadManager, podczas przesyłania ruchu w imieniu aplikacji.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

setTrafficStatsUid

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

Ustawia konkretny identyfikator UID, który będzie używany podczas rozliczania ruchu gniazda spowodowanego przez to żądanie. Więcej informacji znajdziesz tutaj: android.net.TrafficStats. Przeznaczony do użycia podczas wykonywania operacji w imieniu innej aplikacji. Dzwoniący musi mieć uprawnienie MODIFY_NETWORK_ACCOUNTING. Domyślnie ruch jest przypisywany do identyfikatora UID osoby dzwoniącej.

UWAGA: ustawienie identyfikatora UID uniemożliwia udostępnianie gniazd żądaniom z innymi identyfikatorami UID, co może negatywnie wpłynąć na wydajność, ponieważ uniemożliwia udostępnianie połączeń. Innymi słowy, używanie multipleksowanych gniazd (np. HTTP/2 i QUIC) będzie dozwolone tylko wtedy, gdy wszystkie żądania mają ustawiony ten sam identyfikator UID.

Parametry
uid: Int

identyfikator UID do przypisywania ruchu gniazda spowodowanego przez to żądanie;

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.

setUploadDataProvider

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

Ustawia dostawcę danych przesyłanych przez użytkowników. Jeśli nie zostanie określona, metoda zostanie zmieniona na „POST”. Rozpoczęcie żądania spowoduje zgłoszenie wyjątku, jeśli nie ustawiono nagłówka Content-Type.

Parametry
uploadDataProvider: UploadDataProvider!

odpowiedzialny za dostarczanie danych do przesyłania.

executor: Executor!

Wszystkie metody obiektu uploadDataProvider będą wywoływane za pomocą tego obiektu Executor. Może być opcjonalnie taka sama jak Executor, której używa samo żądanie.

Zwraca
UrlRequest.Builder!

w narzędziu do tworzenia, aby ułatwić łączenie.