CronetEngine.Builder

public class CronetEngine.Builder


Builder untuk CronetEngine, yang memungkinkan konfigurasi runtime CronetEngine. Opsi konfigurasi ditetapkan pada builder, lalu build dipanggil untuk membuat CronetEngine.

Ringkasan

Jenis bertingkat

Class yang menyediakan metode untuk memuat library native cronet.

Konstanta

static final int

Setelan untuk menonaktifkan cache HTTP.

static final int

Setelan untuk mengaktifkan cache di disk, termasuk data HTTP.

static final int

Setelan untuk mengaktifkan cache di disk, tidak termasuk data HTTP.

static final int

Setelan untuk mengaktifkan cache HTTP dalam memori, termasuk data HTTP.

Kolom yang dilindungi

JSONObject

Representasi JSON dari opsi eksperimental.

Konstruktor publik

Builder(Context context)

Membangun objek Builder yang memfasilitasi pembuatan CronetEngine.

Metode publik

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

Menyematkan serangkaian kunci publik untuk host tertentu.

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

Menambahkan petunjuk bahwa host mendukung QUIC.

CronetEngine

Membangun CronetEngine menggunakan konfigurasi builder ini.

CronetEngine.Builder
enableBrotli(boolean value)

Menetapkan apakah kompresi Brotli diaktifkan.

CronetEngine.Builder
enableHttp2(boolean value)

Menetapkan apakah protokol HTTP/2 diaktifkan.

CronetEngine.Builder
enableHttpCache(int cacheMode, long maxSize)

Mengaktifkan atau menonaktifkan penyimpanan dalam cache data HTTP dan informasi lain seperti informasi server QUIC.

CronetEngine.Builder

Mengaktifkan estimator kualitas jaringan, yang mengumpulkan dan melaporkan pengukuran waktu perjalanan pulang pergi (RTT) dan throughput downstream di berbagai lapisan stack jaringan.

CronetEngine.Builder

Mengaktifkan atau menonaktifkan pengabaian penyematan kunci publik untuk trust anchor lokal.

CronetEngine.Builder
enableQuic(boolean value)

Menetapkan apakah protokol QUIC diaktifkan.

String

Membangun string User-Agent yang mencakup nama dan versi aplikasi, versi build sistem, model dan ID, serta versi Cronet.

CronetEngine.Builder
CronetEngine.Builder

Mengonfigurasi perilaku migrasi koneksi.

CronetEngine.Builder

Mengonfigurasi perilaku pencarian nama host.

CronetEngine.Builder
CronetEngine.Builder

Menetapkan LibraryLoader yang akan digunakan untuk memuat library native.

CronetEngine.Builder

Mengonfigurasi perilaku proxy.

CronetEngine.Builder
CronetEngine.Builder

Mengonfigurasi perilaku Cronet saat menggunakan QUIC.

CronetEngine.Builder

Menetapkan direktori untuk Penyimpanan Cookie dan Cache HTTP.

CronetEngine.Builder
setThreadPriority(int priority)

Metode ini tidak digunakan lagi.

Pada Cronet versi modern, metode ini tidak melakukan apa pun.

CronetEngine.Builder
setUserAgent(String userAgent)

Mengganti header Agen Pengguna untuk semua permintaan.

Konstanta

HTTP_CACHE_DISABLED

public static final int HTTP_CACHE_DISABLED = 0

Setelan untuk menonaktifkan cache HTTP. Beberapa data mungkin masih disimpan sementara dalam memori. Diteruskan ke enableHttpCache.

HTTP_CACHE_DISK

public static final int HTTP_CACHE_DISK = 3

Setelan untuk mengaktifkan cache di disk, termasuk data HTTP. setStoragePath harus dipanggil sebelum meneruskan konstanta ini ke enableHttpCache.

HTTP_CACHE_DISK_NO_HTTP

public static final int HTTP_CACHE_DISK_NO_HTTP = 2

Setelan untuk mengaktifkan cache di disk, tidak termasuk data HTTP. setStoragePath harus dipanggil sebelum meneruskan konstanta ini ke enableHttpCache.

HTTP_CACHE_IN_MEMORY

public static final int HTTP_CACHE_IN_MEMORY = 1

Setelan untuk mengaktifkan cache HTTP dalam memori, termasuk data HTTP. Diteruskan ke enableHttpCache.

Kolom yang dilindungi

mParsedExperimentalOptions

protected JSONObject mParsedExperimentalOptions

Representasi JSON dari opsi eksperimental.

Konstruktor publik

Builder

public Builder(Context context)

Membangun objek Builder yang memfasilitasi pembuatan CronetEngine. Konfigurasi default mengaktifkan HTTP/2 dan QUIC, tetapi menonaktifkan cache HTTP.

Parameter
Context context

Android Context, yang digunakan oleh Builder untuk mengambil konteks aplikasi. Referensi ke konteks aplikasi saja akan dipertahankan, sehingga tidak memperpanjang masa aktif context secara tidak perlu.

Metode publik

addPublicKeyPins

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

Menyematkan serangkaian kunci publik untuk host tertentu. Dengan menyematkan sekumpulan kunci publik, pinsSha256, komunikasi dengan hostName diperlukan untuk melakukan autentikasi dengan sertifikat yang memiliki kunci publik dari kumpulan yang disematkan. Aplikasi dapat menyematkan kunci publik sertifikat root, salah satu sertifikat perantara, atau sertifikat entri akhir. Autentikasi akan gagal dan komunikasi yang aman tidak akan dilakukan jika tidak ada kunci publik dalam rantai sertifikat host, meskipun host mencoba melakukan autentikasi dengan sertifikat yang diizinkan oleh penyimpanan sertifikat tepercaya perangkat.

Memanggil metode ini beberapa kali dengan nama host yang sama akan menggantikan pin yang ditetapkan sebelumnya untuk host.

Informasi selengkapnya tentang penyematan kunci publik dapat ditemukan di RFC 7469.

Parameter
String hostName

nama host yang kunci publiknya harus disematkan. Host yang hanya terdiri dari digit dan karakter titik dianggap tidak valid.

Set<byte[]> pinsSha256

kumpulan pin. Setiap pin adalah hash kriptografi SHA-256 dari representasi ASN.1 yang dienkode DER dari Subject Public Key Info (SPKI) sertifikat X.509 host. Gunakan Certificate.getPublicKey() dan Key.getEncoded() untuk mendapatkan representasi ASN.1 yang dienkode DER dari SPKI. Meskipun metode ini tidak mewajibkan keberadaan pin cadangan yang dapat digunakan jika kontrol kunci pribadi utama telah hilang, sebaiknya berikan pin cadangan.

boolean includeSubdomains

menunjukkan apakah kebijakan penyematan harus diterapkan ke subdomain hostName.

Date expirationDate

menentukan tanggal habis masa berlaku untuk pin.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

Menampilkan
java.lang.NullPointerException

jika salah satu parameter input adalah null.

java.lang.IllegalArgumentException

jika nama host yang diberikan tidak valid atau pinsSha256 berisi array byte yang tidak merepresentasikan hash SHA-256 yang valid.

addQuicHint

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

Menambahkan petunjuk bahwa host mendukung QUIC. Perhatikan bahwa enableHttpCache (HTTP_CACHE_DISK) diperlukan untuk memanfaatkan pembentukan koneksi 0-RTT antar-sesi.

Parameter
String host

nama host server yang mendukung QUIC.

int port

host server yang mendukung QUIC.

int alternatePort

port alternatif yang akan digunakan untuk QUIC.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

build

public CronetEngine build()

Membangun CronetEngine menggunakan konfigurasi builder ini.

Hasil
CronetEngine

dibangun CronetEngine.

enableBrotli

public CronetEngine.Builder enableBrotli(boolean value)

Menetapkan apakah kompresi Brotli diaktifkan. Jika diaktifkan, Brotli akan diiklankan di header permintaan Accept-Encoding. Nilai defaultnya adalah dinonaktifkan.

Parameter
boolean value

true untuk mengaktifkan Brotli, false untuk menonaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

enableHttp2

public CronetEngine.Builder enableHttp2(boolean value)

Menetapkan apakah protokol HTTP/2 diaktifkan. Diaktifkan secara default.

Parameter
boolean value

true untuk mengaktifkan HTTP/2, false untuk menonaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

enableHttpCache

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

Mengaktifkan atau menonaktifkan penyimpanan dalam cache data HTTP dan informasi lain seperti informasi server QUIC.

Parameter
int cacheMode

mengontrol lokasi dan jenis data yang di-cache. Harus berupa salah satu dari HTTP_CACHE_*.

long maxSize

ukuran maksimum dalam byte yang digunakan untuk menyimpan data dalam cache (saran dan mungkin terlampaui terkadang).

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

enableNetworkQualityEstimator

public CronetEngine.Builder enableNetworkQualityEstimator(boolean value)

Mengaktifkan estimator kualitas jaringan, yang mengumpulkan dan melaporkan pengukuran waktu perjalanan pulang pergi (RTT) dan throughput downstream di berbagai lapisan stack jaringan. Setelah mengaktifkan estimator, pemroses RTT dan throughput dapat ditambahkan dengan addRttListener dan addThroughputListener serta dihapus dengan removeRttListener dan removeThroughputListener. Estimator menggunakan memori dan CPU hanya saat diaktifkan.

Parameter
boolean value

true untuk mengaktifkan pengestimasi kualitas jaringan, false untuk menonaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

enablePublicKeyPinningBypassForLocalTrustAnchors

public CronetEngine.Builder enablePublicKeyPinningBypassForLocalTrustAnchors(boolean value)

Mengaktifkan atau menonaktifkan pengabaian penyematan kunci publik untuk trust anchor lokal. Sangat tidak disarankan untuk menonaktifkan bypass untuk trust anchor lokal karena dapat melarang aplikasi berkomunikasi dengan host yang disematkan. Misalnya, pengguna mungkin ingin mengirim semua traffic melalui proxy yang mendukung SSL dengan mengubah setelan proxy perangkat dan menambahkan sertifikat proxy ke daftar anchor tepercaya lokal. Menonaktifkan bypass kemungkinan besar akan mencegah aplikasi mengirimkan traffic apa pun ke host yang disematkan. Untuk mengetahui informasi selengkapnya, lihat 'How does key pinning interact with local proxies and filters?' di https://www.chromium.org/Home/chromium-security/security-faq

Parameter
boolean value

true untuk mengaktifkan pengabaian, false untuk menonaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

enableQuic

public CronetEngine.Builder enableQuic(boolean value)

Menetapkan apakah protokol QUIC diaktifkan. Diaktifkan secara default. Jika QUIC diaktifkan, maka ID Agen Pengguna QUIC yang berisi nama aplikasi dan versi Cronet akan dikirim ke server.

Parameter
boolean value

true untuk mengaktifkan QUIC, false untuk menonaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

getDefaultUserAgent

public String getDefaultUserAgent()

Membangun string User-Agent yang mencakup nama dan versi aplikasi, versi build sistem, model dan ID, serta versi Cronet.

Hasil
String

String Agen Pengguna.

setConnectionMigrationOptions

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

Mengonfigurasi perilaku migrasi koneksi. Untuk mengetahui detail selengkapnya, lihat dokumentasi ConnectionMigrationOptions dan masing-masing metode ConnectionMigrationOptions.Builder.

Hanya relevan jika enableQuic diaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

setDnsOptions

@DnsOptions.Experimental
public CronetEngine.Builder setDnsOptions(DnsOptions dnsOptions)

Mengonfigurasi perilaku pencarian nama host. Untuk mengetahui detail selengkapnya, lihat dokumentasi DnsOptions dan masing-masing metode DnsOptions.Builder.

Hanya relevan jika enableQuic diaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

setLibraryLoader

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

Menetapkan LibraryLoader yang akan digunakan untuk memuat library native. Jika tidak disetel, library akan dimuat menggunakan loadLibrary.

Parameter
CronetEngine.Builder.LibraryLoader loader

LibraryLoader yang akan digunakan untuk memuat library native.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

setProxyOptions

public CronetEngine.Builder setProxyOptions(@NonNull ProxyOptions proxyOptions)

Mengonfigurasi perilaku proxy. Hal ini memengaruhi, dengan cara yang berbeda: pembentukan koneksi, UrlRequest, dan BidirectionalStream. Untuk mengetahui detail selengkapnya, lihat dokumentasi Proxy.

Hal ini tidak boleh disamakan dengan konfigurasi proxy yang telah disiapkan oleh: pengguna; atau beberapa konfigurasi profil perusahaan, atau (kemungkinan besar) beberapa konfigurasi otomatis jaringan (misalnya, Web Proxy Auto-Discovery Protocol). Hal ini biasanya disebut sebagai konfigurasi proxy "sistem". Jika ada, mematuhi konfigurasi proxy sistem sering kali menjadi persyaratan untuk mendapatkan konektivitas lokal dan/atau internet. CronetEngine sudah menangani konfigurasi proxy sistem secara internal.

Konfigurasi proxy yang ditentukan melalui API ini disebut sebagai konfigurasi proxy "aplikasi". Konfigurasi proxy aplikasi dan sistem terpisah dan, yang paling penting, berbeda. Saat ini, konfigurasi proxy aplikasi dan sistem bersifat eksklusif: menentukan ProxyOptions akan menggantikan konfigurasi proxy sistem, jika ada. Hal ini dapat menyebabkan masalah konektivitas dalam beberapa skenario saat konfigurasi proxy sistem ada. Dalam skenario seperti itu, pengguna mungkin tidak memiliki akses internet, kecuali jika ProxyOptions telah dikonfigurasi dengan penggantian null akhir. Lihat dokumentasi ProxyOptions.

Parameter
@NonNull ProxyOptions proxyOptions

ProxyOptions yang akan digunakan untuk UrlRequest, BiridirectionalStream, dan koneksi yang dibuat oleh CronetEngine yang dibuat oleh builder ini.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

Menampilkan
java.lang.UnsupportedOperationException

jika implementasi Cronet yang digunakan terlalu lama untuk mendukung ProxyOptions.

setQuicOptions

@QuicOptions.Experimental
public CronetEngine.Builder setQuicOptions(QuicOptions.Builder quicOptionsBuilder)
Lihat juga
setQuicOptions

setQuicOptions

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

Mengonfigurasi perilaku Cronet saat menggunakan QUIC. Untuk mengetahui detail selengkapnya, lihat dokumentasi QuicOptions dan masing-masing metode QuicOptions.Builder.

Hanya relevan jika enableQuic diaktifkan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

setStoragePath

public CronetEngine.Builder setStoragePath(String value)

Menetapkan direktori untuk Penyimpanan Cookie dan Cache HTTP. Direktori harus ada.

CATATAN: Jangan gunakan direktori penyimpanan yang sama dengan lebih dari satu CronetEngine sekaligus. Akses ke direktori penyimpanan tidak mendukung akses serentak oleh beberapa CronetEngine.

Parameter
String value

jalur ke direktori yang ada.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

setThreadPriority

public CronetEngine.Builder setThreadPriority(int priority)

Menetapkan prioritas thread dari thread internal Cronet.

Parameter
int priority

prioritas thread internal Cronet. Tingkat prioritas Linux, dari -20 untuk prioritas penjadwalan tertinggi hingga 19 untuk prioritas penjadwalan terendah. Untuk mengetahui informasi selengkapnya tentang nilai, lihat nilai setThreadPriority dan THREAD_PRIORITY_*.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.

setUserAgent

public CronetEngine.Builder setUserAgent(String userAgent)

Mengganti header Agen Pengguna untuk semua permintaan. Header Agen Pengguna yang ditetapkan secara eksplisit (ditetapkan menggunakan addHeader) akan menggantikan nilai yang ditetapkan menggunakan fungsi ini.

Parameter
String userAgent

string Agen Pengguna yang akan digunakan untuk semua permintaan.

Hasil
CronetEngine.Builder

builder untuk memfasilitasi penggabungan.