CronetEngine.Builder

public 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

static final int

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

static final int

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

static final int

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

static final int

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

Pola chronione

JSONObject

Reprezentacja JSON opcji eksperymentalnych.

Konstruktory publiczne

Builder(Context context)

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

Metody publiczne

CronetEngine.Builder
addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

Przypina zestaw kluczy publicznych dla danego hosta.

CronetEngine.Builder
addQuicHint(String host, int port, int alternatePort)

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

CronetEngine

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

CronetEngine.Builder
enableBrotli(boolean value)

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

CronetEngine.Builder
enableHttp2(boolean value)

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

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

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
enableQuic(boolean value)

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
setThreadPriority(int priority)

Ta metoda została wycofana.

W nowoczesnych wersjach Croneta ta metoda nie robi nic.

CronetEngine.Builder
setUserAgent(String userAgent)

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

Stałe

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

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

public static final int HTTP_CACHE_DISK = 3

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

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

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

public static final int HTTP_CACHE_IN_MEMORY = 1

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

Pola chronione

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

Reprezentacja JSON opcji eksperymentalnych.

Konstruktory publiczne

Monter

public 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.

Metody publiczne

addPublicKeyPins

public CronetEngine.Builder addPublicKeyPins(
    String hostName,
    Set<byte[]> pinsSha256,
    boolean includeSubdomains,
    Date expirationDate
)

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
String hostName

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.

Set<byte[]> pinsSha256

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.

boolean includeSubdomains

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

Date expirationDate

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

public CronetEngine.Builder addQuicHint(String host, int port, int alternatePort)

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
String host

nazwa hosta serwera obsługującego QUIC.

int port

host serwera obsługującego QUIC.

int alternatePort

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

Zwraca
CronetEngine.Builder

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

kompilacja

public CronetEngine build()

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

Zwraca
CronetEngine

zbudowano CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

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
boolean value

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

Zwraca
CronetEngine.Builder

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

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

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

Parametry
boolean value

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

Zwraca
CronetEngine.Builder

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

enableHttpCache

public CronetEngine.Builder enableHttpCache(int cacheMode, long maxSize)

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

Parametry
int cacheMode

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

long maxSize

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

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

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
boolean value

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

Zwraca
CronetEngine.Builder

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

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

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
boolean value

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

Zwraca
CronetEngine.Builder

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

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

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
boolean value

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

Zwraca
CronetEngine.Builder

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

getDefaultUserAgent

public String getDefaultUserAgent()

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
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions.Builder connectionMigrationOptionsBuilder
)

setConnectionMigrationOptions

@ConnectionMigrationOptions.Experimental
public CronetEngine.Builder setConnectionMigrationOptions(
    ConnectionMigrationOptions connectionMigrationOptions
)

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
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

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

public CronetEngine.Builder setLibraryLoader(CronetEngine.Builder.LibraryLoader loader)

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
CronetEngine.Builder.LibraryLoader loader

LibraryLoader do wczytywania biblioteki natywnej.

Zwraca
CronetEngine.Builder

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

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

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
@NonNull 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
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
Zobacz też
setQuicOptions

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions quicOptions)

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

public CronetEngine.Builder setStoragePath(String value)

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
String value

ścieżka do istniejącego katalogu.

Zwraca
CronetEngine.Builder

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

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

Ustawia priorytet wątku wewnętrznego Croneta.

Parametry
int priority

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

public CronetEngine.Builder setUserAgent(String userAgent)

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
String userAgent

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.