CronetEngine.Builder

class CronetEngine.Builder


Konstruktor obiektów CronetEngine, który umożliwia konfigurowanie w czasie działania obiektu CronetEngine. Opcje konfiguracji są ustawiane w konstruktorze, a następnie wywoływana jest funkcja build, aby utworzyć obiekt CronetEngine.

Podsumowanie

Typy zagnieżdżone

Klasa, która udostępnia metodę wczytywania natywnej biblioteki Cronet.

Stałe

const Int

Ustawienie wyłączające pamięć podręczną HTTP.

const Int

Ustawienie włączające pamięć podręczną na dysku, w tym dane HTTP.

const Int

Ustawienie włączające pamięć podręczną na dysku z wyłączeniem danych HTTP.

const Int

Ustawienie umożliwiające włączenie pamięci podręcznej HTTP w pamięci RAM, w tym danych HTTP.

Konstruktory publiczne

Builder(context: Context!)

Tworzy obiekt Builder, który ułatwia tworzenie obiektu CronetEngine.

Funkcje publiczne

CronetEngine.Builder!
addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
)

Przypina zestaw kluczy publicznych dla danego hosta.

CronetEngine.Builder!
addQuicHint(host: String!, port: Int, alternatePort: Int)

Dodaje wskazówkę, że host obsługuje QUIC.

CronetEngine!

Utwórz CronetEngine za pomocą konfiguracji tego narzędzia do tworzenia.

CronetEngine.Builder!

Określa, czy kompresja Brotli jest włączona.

CronetEngine.Builder!

Określa, czy protokół HTTP/2 jest włączony.

CronetEngine.Builder!
enableHttpCache(cacheMode: Int, maxSize: Long)

Włącza lub wyłącza buforowanie danych HTTP i innych informacji, takich jak informacje o serwerze QUIC.

CronetEngine.Builder!

Włącza narzędzie do szacowania jakości sieci, które zbiera i raportuje pomiary czasu podróży w obie strony (RTT) oraz przepustowości pobierania na różnych warstwach stosu sieciowego.

CronetEngine.Builder!

Włącza lub wyłącza pomijanie przypinania klucza publicznego w przypadku lokalnych kotwic zaufania.

CronetEngine.Builder!

Określa, czy protokół QUIC jest włączony.

String!

Tworzy ciąg User-Agent zawierający nazwę i wersję aplikacji, wersję kompilacji systemu, model i identyfikator oraz wersję Croneta.

CronetEngine.Builder!
CronetEngine.Builder!

Konfiguruje działanie migracji połączenia.

CronetEngine.Builder!

Konfiguruje działanie wyszukiwania nazwy hosta.

CronetEngine.Builder!
CronetEngine.Builder!

Ustawia LibraryLoader, który będzie używany do ładowania biblioteki natywnej.

CronetEngine.Builder!

Konfiguruje działanie serwera proxy.

CronetEngine.Builder!
CronetEngine.Builder!

Konfiguruje działanie Croneta podczas korzystania z QUIC.

CronetEngine.Builder!

Określa katalog pamięci podręcznej HTTP i przechowywania plików cookie.

CronetEngine.Builder!

Ta funkcja została wycofana.

W nowoczesnych wersjach Croneta ta metoda nie robi nic.

CronetEngine.Builder!
setUserAgent(userAgent: String!)

Zastępuje nagłówek klienta użytkownika we wszystkich żądaniach.

Zabezpieczone usługi

JSONObject!

Reprezentacja JSON opcji eksperymentalnych.

Stałe

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

Ustawienie wyłączające pamięć podręczną HTTP. Niektóre dane mogą być nadal tymczasowo przechowywane w pamięci. Przekazano do enableHttpCache.

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

Ustawienie włączające pamięć podręczną na dysku, w tym dane HTTP. Funkcję setStoragePath należy wywołać przed przekazaniem tej stałej do funkcji enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

Ustawienie włączające pamięć podręczną na dysku z wyłączeniem danych HTTP. Funkcję setStoragePath należy wywołać przed przekazaniem tej stałej do funkcji enableHttpCache.

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

Ustawienie umożliwiające włączenie pamięci podręcznej HTTP w pamięci RAM, w tym danych HTTP. Przekazano do enableHttpCache.

Konstruktory publiczne

Monter

Builder(context: Context!)

Tworzy obiekt Builder, który ułatwia tworzenie obiektu CronetEngine. Konfiguracja domyślna włącza protokoły HTTP/2 i QUIC, ale wyłącza pamięć podręczną HTTP.

Parametry
context: Context!

Android Context, który jest używany przez Builder do pobierania kontekstu aplikacji. Zachowane zostanie tylko odwołanie do kontekstu aplikacji, aby niepotrzebnie nie wydłużać czasu życia context.

Funkcje publiczne

addPublicKeyPins

fun addPublicKeyPins(
    hostName: String!,
    pinsSha256: (Mutable)Set<ByteArray!>!,
    includeSubdomains: Boolean,
    expirationDate: Date!
): CronetEngine.Builder!

Przypina zestaw kluczy publicznych dla danego hosta. Przypinając zestaw kluczy publicznych pinsSha256, komunikacja z hostName wymaga uwierzytelnienia za pomocą certyfikatu z kluczem publicznym z przypiętego zestawu. Aplikacja może przypiąć klucz publiczny certyfikatu głównego, dowolnego certyfikatu pośredniego lub certyfikatu końcowego. Uwierzytelnianie nie powiedzie się i nie zostanie nawiązana bezpieczna komunikacja, jeśli w łańcuchu certyfikatów hosta nie będzie żadnego klucza publicznego, nawet jeśli host spróbuje uwierzytelnić się za pomocą certyfikatu dozwolonego przez zaufany magazyn certyfikatów urządzenia.

Wywołanie tej metody kilka razy z tą samą nazwą hosta powoduje zastąpienie wcześniej ustawionych przypięć dla tego hosta.

Więcej informacji o przypinaniu klucza publicznego znajdziesz w dokumencie RFC 7469.

Parametry
hostName: String!

nazwa hosta, do którego mają być przypięte klucze publiczne. Host składający się tylko z cyfr i kropki jest traktowany jako nieprawidłowy.

pinsSha256: (Mutable)Set<ByteArray!>!

zestaw pinów. Każdy pin to kryptograficzny skrót SHA-256 reprezentacji ASN.1 zakodowanej w formacie DER informacji o kluczu publicznym podmiotu (SPKI) certyfikatu X.509 hosta. Użyj Certificate.getPublicKey()Key.getEncoded(), aby uzyskać reprezentację SPKI w formacie ASN.1 zakodowanym w DER. Chociaż ta metoda nie wymaga podania zapasowego kodu PIN, który można wykorzystać w przypadku utraty kontroli nad podstawowym kluczem prywatnym, zdecydowanie zalecamy jego podanie.

includeSubdomains: Boolean

wskazuje, czy zasady przypinania mają być stosowane do subdomen domeny hostName.

expirationDate: Date!

określa datę ważności kodów PIN.

Zwraca
CronetEngine.Builder!

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

Zgłasza
java.lang.NullPointerException

jeśli którykolwiek z parametrów wejściowych ma wartość null.

java.lang.IllegalArgumentException

jeśli podana nazwa hosta jest nieprawidłowa lub pinsSha256 zawiera tablicę bajtów, która nie reprezentuje prawidłowego haszu SHA-256.

addQuicHint

fun addQuicHint(host: String!, port: Int, alternatePort: Int): CronetEngine.Builder!

Dodaje wskazówkę, że host obsługuje QUIC. Pamiętaj, że enableHttpCache (HTTP_CACHE_DISK) jest potrzebne, aby korzystać z nawiązywania połączenia 0-RTT między sesjami.

Parametry
host: String!

nazwa hosta serwera obsługującego QUIC.

port: Int

host serwera obsługującego QUIC.

alternatePort: Int

alternatywny port do użycia w przypadku protokołu QUIC.

Zwraca
CronetEngine.Builder!

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

kompilacja

fun build(): CronetEngine!

Utwórz CronetEngine za pomocą konfiguracji tego narzędzia do tworzenia.

Zwraca
CronetEngine!

zbudowano CronetEngine.

enableBrotli

fun enableBrotli(value: Boolean): CronetEngine.Builder!

Określa, czy kompresja Brotli jest włączona. Jeśli ta opcja jest włączona, Brotli będzie reklamowany w nagłówkach żądań Accept-Encoding. Domyślnie jest wyłączona.

Parametry
value: Boolean

true – włączenie Brotli, false – wyłączenie.

Zwraca
CronetEngine.Builder!

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

enableHttp2

fun enableHttp2(value: Boolean): CronetEngine.Builder!

Określa, czy protokół HTTP/2 jest włączony. Domyślnie jest włączona.

Parametry
value: Boolean

true – włączenie HTTP/2, false – wyłączenie.

Zwraca
CronetEngine.Builder!

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

enableHttpCache

fun enableHttpCache(cacheMode: Int, maxSize: Long): CronetEngine.Builder!

Włącza lub wyłącza buforowanie danych HTTP i innych informacji, takich jak informacje o serwerze QUIC.

Parametry
cacheMode: Int

kontrolować lokalizację i rodzaj danych w pamięci podręcznej; Musi to być jedna z tych wartości: HTTP_CACHE_*.

maxSize: Long

maksymalny rozmiar w bajtach używany do buforowania danych (zalecany, ale czasami może zostać przekroczony);

Zwraca
CronetEngine.Builder!

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

enableNetworkQualityEstimator

fun enableNetworkQualityEstimator(value: Boolean): CronetEngine.Builder!

Włącza narzędzie do szacowania jakości sieci, które zbiera i raportuje pomiary czasu podróży w obie strony (RTT) oraz przepustowości pobierania na różnych warstwach stosu sieciowego. Po włączeniu estymatora można dodawać słuchaczy RTT i przepustowości za pomocą addRttListener i addThroughputListener oraz usuwać ich za pomocą removeRttListener i removeThroughputListener. Estymator korzysta z pamięci i procesora tylko wtedy, gdy jest włączony.

Parametry
value: Boolean

true – włączenie szacowania jakości sieci, false – wyłączenie.

Zwraca
CronetEngine.Builder!

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

enablePublicKeyPinningBypassForLocalTrustAnchors

fun enablePublicKeyPinningBypassForLocalTrustAnchors(value: Boolean): CronetEngine.Builder!

Włącza lub wyłącza pomijanie przypinania klucza publicznego w przypadku lokalnych kotwic zaufania. Wyłączenie obejścia w przypadku lokalnych kotwic zaufania jest wysoce odradzane, ponieważ może uniemożliwić aplikacji komunikację z przypiętymi hostami. Użytkownik może na przykład chcieć przesyłać cały ruch przez serwer proxy z włączonym protokołem SSL, zmieniając ustawienia serwera proxy urządzenia i dodając certyfikat serwera proxy do listy lokalnych punktów zaufania. Wyłączenie obejścia najprawdopodobniej uniemożliwi aplikacji wysyłanie ruchu do przypiętych hostów. Więcej informacji znajdziesz w sekcji „How does key pinning interact with local proxies and filters?” (Jak działa przypinanie kluczy w przypadku lokalnych serwerów proxy i filtrów?) na stronie https://www.chromium.org/Home/chromium-security/security-faq.

Parametry
value: Boolean

true – aby włączyć pomijanie, false – aby wyłączyć.

Zwraca
CronetEngine.Builder!

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

enableQuic

fun enableQuic(value: Boolean): CronetEngine.Builder!

Określa, czy protokół QUIC jest włączony. Domyślnie jest włączona. Jeśli QUIC jest włączony, do serwera jest wysyłany identyfikator agenta użytkownika QUIC zawierający nazwę aplikacji i wersję Croneta.

Parametry
value: Boolean

true – włączenie QUIC, false – wyłączenie.

Zwraca
CronetEngine.Builder!

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

getDefaultUserAgent

fun getDefaultUserAgent(): String!

Tworzy ciąg User-Agent zawierający nazwę i wersję aplikacji, wersję kompilacji systemu, model i identyfikator oraz wersję Croneta.

Zwraca
String!

Ciąg klienta użytkownika.

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptionsBuilder: ConnectionMigrationOptions.Builder!
): CronetEngine.Builder!

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
fun setConnectionMigrationOptions(
    connectionMigrationOptions: ConnectionMigrationOptions!
): CronetEngine.Builder!

Konfiguruje działanie migracji połączenia. Więcej informacji znajdziesz w dokumentacji ConnectionMigrationOptions i poszczególnych metod ConnectionMigrationOptions.Builder.

Ma znaczenie tylko wtedy, gdy włączona jest funkcja enableQuic.

Zwraca
CronetEngine.Builder!

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

setDnsOptions

@DnsOptions.Experimental
fun setDnsOptions(dnsOptions: DnsOptions!): CronetEngine.Builder!

Konfiguruje działanie wyszukiwania nazwy hosta. Więcej informacji znajdziesz w dokumentacji DnsOptions i poszczególnych metod DnsOptions.Builder.

Ma znaczenie tylko wtedy, gdy włączona jest funkcja enableQuic.

Zwraca
CronetEngine.Builder!

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

setLibraryLoader

fun setLibraryLoader(loader: CronetEngine.Builder.LibraryLoader!): CronetEngine.Builder!

Ustawia LibraryLoader, który będzie używany do ładowania biblioteki natywnej. Jeśli nie zostanie ustawiona, biblioteka zostanie załadowana za pomocą loadLibrary.

Parametry
loader: CronetEngine.Builder.LibraryLoader!

LibraryLoader do wczytywania biblioteki natywnej.

Zwraca
CronetEngine.Builder!

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

setProxyOptions

fun setProxyOptions(proxyOptions: ProxyOptions): CronetEngine.Builder!

Konfiguruje działanie serwera proxy. Wpływa to w różny sposób na nawiązywanie połączeń, UrlRequestBidirectionalStream. Więcej informacji znajdziesz w dokumentacji Proxy.

Nie należy tego mylić z konfiguracją serwera proxy, która została skonfigurowana przez użytkownika, w ramach konfiguracji profilu firmowego lub (najprawdopodobniej) w ramach automatycznej konfiguracji sieci (np. protokołu automatycznego wykrywania serwera proxy). Jest to zwykle nazywane konfiguracją serwera proxy „systemowego”. Jeśli jest obecny, przestrzeganie konfiguracji serwera proxy systemu jest często wymagane do uzyskania łączności lokalnej lub internetowej. CronetEngine wewnętrznie obsługuje już konfigurację serwera proxy systemu.

Konfiguracja serwera proxy zdefiniowana za pomocą tego interfejsu API jest nazywana konfiguracją serwera proxy „aplikacji”. Konfiguracja serwera proxy aplikacji i systemu jest od siebie niezależna i co najważniejsze – różni się. Obecnie konfiguracje serwera proxy aplikacji i systemu wykluczają się wzajemnie: określenie ProxyOptions zastępuje konfigurację serwera proxy systemu, jeśli jest obecna. W niektórych przypadkach, gdy występuje konfiguracja serwera proxy systemu, może to powodować problemy z łącznością. W takich sytuacjach użytkownicy mogą nie mieć dostępu do internetu, chyba że ProxyOptions ma skonfigurowaną ostateczną, null, rezerwę. Zapoznaj się z dokumentacją ProxyOptions.

Parametry
proxyOptions: ProxyOptions

ProxyOptions, które mają być używane w przypadku UrlRequest, BiridirectionalStream i połączeń nawiązywanych przez CronetEngine utworzony przez ten konstruktor.

Zwraca
CronetEngine.Builder!

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

Zgłasza
java.lang.UnsupportedOperationException

jeśli używana implementacja Cronet jest zbyt stara, aby obsługiwać ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
Zobacz też
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
fun setQuicOptions(quicOptions: QuicOptions!): CronetEngine.Builder!

Konfiguruje działanie Croneta podczas korzystania z QUIC. Więcej informacji znajdziesz w dokumentacji QuicOptions i poszczególnych metod QuicOptions.Builder.

Ma znaczenie tylko wtedy, gdy włączona jest funkcja enableQuic.

Zwraca
CronetEngine.Builder!

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

setStoragePath

fun setStoragePath(value: String!): CronetEngine.Builder!

Określa katalog pamięci podręcznej HTTP i przechowywania plików cookie. Katalog musi istnieć.

UWAGA: nie używaj tego samego katalogu pamięci z więcej niż 1  CronetEngine jednocześnie. Dostęp do katalogu pamięci nie obsługuje jednoczesnego dostępu wielu CronetEngine.

Parametry
value: String!

ścieżka do istniejącego katalogu.

Zwraca
CronetEngine.Builder!

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

setThreadPriority

fun setThreadPriority(priority: Int): CronetEngine.Builder!

Ustawia priorytet wątku wewnętrznego Croneta.

Parametry
priority: Int

priorytet wątku wewnętrznego Croneta. Poziom priorytetu systemu Linux, od -20 (najwyższy priorytet planowania) do 19 (najniższy priorytet planowania). Więcej informacji o wartościach znajdziesz w sekcjach setThreadPriorityTHREAD_PRIORITY_*.

Zwraca
CronetEngine.Builder!

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

setUserAgent

fun setUserAgent(userAgent: String!): CronetEngine.Builder!

Zastępuje nagłówek klienta użytkownika we wszystkich żądaniach. Nagłówek User-Agent ustawiony jawnie (za pomocą addHeader) zastąpi wartość ustawioną za pomocą tej funkcji.

Parametry
userAgent: String!

ciąg znaków klienta użytkownika, który ma być używany we wszystkich żądaniach.

Zwraca
CronetEngine.Builder!

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

Właściwości chronione

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

Reprezentacja JSON opcji eksperymentalnych.