CronetEngine.Builder

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

const Int

Setelan untuk menonaktifkan cache HTTP.

const Int

Setelan untuk mengaktifkan cache di disk, termasuk data HTTP.

const Int

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

const Int

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

Konstruktor publik

Builder(context: Context!)

Membangun objek Builder yang memfasilitasi pembuatan CronetEngine.

Fungsi publik

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

Menyematkan serangkaian kunci publik untuk host tertentu.

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

Menambahkan petunjuk bahwa host mendukung QUIC.

CronetEngine!

Membangun CronetEngine menggunakan konfigurasi builder ini.

CronetEngine.Builder!

Menetapkan apakah kompresi Brotli diaktifkan.

CronetEngine.Builder!

Menetapkan apakah protokol HTTP/2 diaktifkan.

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

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!

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!

Fungsi ini tidak digunakan lagi.

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

CronetEngine.Builder!
setUserAgent(userAgent: String!)

Mengganti header Agen Pengguna untuk semua permintaan.

Properti yang dilindungi

JSONObject!

Representasi JSON dari opsi eksperimental.

Konstanta

HTTP_CACHE_DISABLED

const val HTTP_CACHE_DISABLED = 0: Int

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

HTTP_CACHE_DISK

const val HTTP_CACHE_DISK = 3: Int

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

HTTP_CACHE_DISK_NO_HTTP

const val HTTP_CACHE_DISK_NO_HTTP = 2: Int

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

HTTP_CACHE_IN_MEMORY

const val HTTP_CACHE_IN_MEMORY = 1: Int

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

Konstruktor publik

Builder

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.

Fungsi publik

addPublicKeyPins

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

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

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

pinsSha256: (Mutable)Set<ByteArray!>!

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.

includeSubdomains: Boolean

menunjukkan apakah kebijakan penyematan harus diterapkan ke subdomain hostName.

expirationDate: Date!

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

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

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

Parameter
host: String!

nama host server yang mendukung QUIC.

port: Int

host server yang mendukung QUIC.

alternatePort: Int

port alternatif yang akan digunakan untuk QUIC.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

build

fun build(): CronetEngine!

Membangun CronetEngine menggunakan konfigurasi builder ini.

Hasil
CronetEngine!

dibangun CronetEngine.

enableBrotli

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

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

Parameter
value: Boolean

true untuk mengaktifkan Brotli, false untuk menonaktifkan.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

enableHttp2

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

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

Parameter
value: Boolean

true untuk mengaktifkan HTTP/2, false untuk menonaktifkan.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

enableHttpCache

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

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

Parameter
cacheMode: Int

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

maxSize: Long

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

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

enableNetworkQualityEstimator

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

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
value: Boolean

true untuk mengaktifkan pengestimasi kualitas jaringan, false untuk menonaktifkan.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

enablePublicKeyPinningBypassForLocalTrustAnchors

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

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
value: Boolean

true untuk mengaktifkan pengabaian, false untuk menonaktifkan.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

enableQuic

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

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
value: Boolean

true untuk mengaktifkan QUIC, false untuk menonaktifkan.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

getDefaultUserAgent

fun getDefaultUserAgent(): String!

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

setConnectionMigrationOptions

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

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

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

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

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

Parameter
loader: CronetEngine.Builder.LibraryLoader!

LibraryLoader yang akan digunakan untuk memuat library native.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

setProxyOptions

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

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
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
fun setQuicOptions(quicOptionsBuilder: QuicOptions.Builder!): CronetEngine.Builder!
Lihat juga
setQuicOptions

setQuicOptions

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

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

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

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

jalur ke direktori yang ada.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

setThreadPriority

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

Menetapkan prioritas thread dari thread internal Cronet.

Parameter
priority: Int

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

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

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

string Agen Pengguna yang akan digunakan untuk semua permintaan.

Hasil
CronetEngine.Builder!

builder untuk memfasilitasi penggabungan.

Properti yang dilindungi

mParsedExperimentalOptions

protected val mParsedExperimentalOptionsJSONObject!

Representasi JSON dari opsi eksperimental.