UrlRequest.Builder

abstract class UrlRequest.Builder


Builder untuk UrlRequest. Mengizinkan konfigurasi permintaan sebelum menyusunnya dengan build. Builder dapat dibuat dengan memanggil newUrlRequestBuilder.

Ringkasan

Konstanta

const Int

Prioritas permintaan tertinggi.

const Int

Prioritas permintaan terendah.

const Int

Prioritas permintaan rendah.

const Int

Prioritas permintaan sangat rendah.

const Int

Prioritas permintaan sedang.

Konstruktor publik

Fungsi publik

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

Menambahkan header permintaan.

UrlRequest.Builder!
addRequestAnnotation(annotation: Any!)

Mengaitkan objek anotasi dengan permintaan ini.

abstract UrlRequest.Builder!

Menandai bahwa eksekutor yang akan digunakan permintaan ini untuk memberi tahu callback (untuk UploadDataProvider dan UrlRequest.Callback) sengaja melakukan eksekusi inline, seperti directExecutor Guava atau java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

UrlRequest.Builder!
bindToNetwork(networkHandle: Long)

Mengikat permintaan ke handle jaringan yang ditentukan.

abstract UrlRequest!

Membuat UrlRequest menggunakan konfigurasi dalam Builder ini.

abstract UrlRequest.Builder!

Menonaktifkan cache untuk permintaan.

abstract UrlRequest.Builder!

Menetapkan kata kerja metode HTTP yang akan digunakan untuk permintaan ini.

abstract UrlRequest.Builder!
setPriority(priority: Int)

Menetapkan prioritas permintaan yang harus berupa salah satu nilai REQUEST_PRIORITY_*.

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

Mengizinkan Cronet menggunakan kamus kompresi yang ditentukan untuk permintaan ini.

UrlRequest.Builder!

Menetapkan pemroses yang dipanggil setelah onCanceled(), onFailed(), atau onSucceeded() ditampilkan.

UrlRequest.Builder!

Menetapkan tag android.net.TrafficStats yang akan digunakan saat memperhitungkan traffic soket yang disebabkan oleh permintaan ini.

UrlRequest.Builder!

Menetapkan UID tertentu untuk digunakan saat menghitung traffic soket yang disebabkan oleh permintaan ini.

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

Menetapkan penyedia data upload.

Konstanta

REQUEST_PRIORITY_HIGHEST

const val REQUEST_PRIORITY_HIGHEST = 4: Int

Prioritas permintaan tertinggi. Diteruskan ke setPriority.

REQUEST_PRIORITY_IDLE

const val REQUEST_PRIORITY_IDLE = 0: Int

Prioritas permintaan terendah. Diteruskan ke setPriority.

REQUEST_PRIORITY_LOW

const val REQUEST_PRIORITY_LOW = 2: Int

Prioritas permintaan rendah. Diteruskan ke setPriority.

REQUEST_PRIORITY_LOWEST

const val REQUEST_PRIORITY_LOWEST = 1: Int

Prioritas permintaan sangat rendah. Diteruskan ke setPriority.

REQUEST_PRIORITY_MEDIUM

const val REQUEST_PRIORITY_MEDIUM = 3: Int

Prioritas permintaan sedang. Diteruskan ke setPriority. Ini adalah prioritas default yang diberikan pada permintaan.

Konstruktor publik

Builder

Builder()

Fungsi publik

addHeader

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

Menambahkan header permintaan.

Parameter
header: String!

nama header.

value: String!

nilai header.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

addRequestAnnotation

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

Mengaitkan objek anotasi dengan permintaan ini. Dapat menambahkan lebih dari satu. Diteruskan ke RequestFinishedInfo.Listener, lihat getAnnotations.

Parameter
annotation: Any!

objek untuk diteruskan ke RequestFinishedInfo.Listener dengan RequestFinishedInfo.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

allowDirectExecutor

abstract fun allowDirectExecutor(): UrlRequest.Builder!

Menandai bahwa eksekutor yang akan digunakan permintaan ini untuk memberi tahu callback (untuk UploadDataProvider dan UrlRequest.Callback) sengaja melakukan eksekusi inline, seperti directExecutor Guava atau java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy.

Peringatan: Opsi ini memudahkan pemblokiran thread jaringan secara tidak sengaja. Tidak boleh digunakan jika callback Anda melakukan I/O disk, mendapatkan kunci, atau memanggil kode lain yang tidak Anda kontrol dan audit dengan cermat.

bindToNetwork

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

Mengikat permintaan ke handle jaringan yang ditentukan. Cronet akan mengirim permintaan ini hanya menggunakan jaringan yang terkait dengan handle ini. Jika jaringan ini terputus, permintaan akan gagal, dan error yang tepat akan bergantung pada tahap pemrosesan permintaan saat jaringan terputus. Nama sebutan jaringan dapat diperoleh melalui Network#getNetworkHandle. Hanya tersedia mulai Android Marshmallow.

Parameter
networkHandle: Long

handle jaringan untuk mengikat permintaan. Tentukan UNBIND_NETWORK_HANDLE untuk membatalkan pengikatan.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

build

abstract fun build(): UrlRequest!

Membuat UrlRequest menggunakan konfigurasi dalam Builder ini. UrlRequest yang ditampilkan kemudian dapat dimulai dengan memanggil start.

Hasil
UrlRequest!

membuat UrlRequest menggunakan konfigurasi dalam Builder ini.

disableCache

abstract fun disableCache(): UrlRequest.Builder!

Menonaktifkan cache untuk permintaan. Jika konteks tidak disiapkan untuk menggunakan cache, panggilan ini tidak akan berpengaruh.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

setHttpMethod

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

Menetapkan kata kerja metode HTTP yang akan digunakan untuk permintaan ini.

Defaultnya jika metode ini tidak dipanggil adalah "GET" jika permintaan tidak memiliki isi atau "POST" jika memiliki isi.

Parameter
method: String!

"GET", "HEAD", "DELETE", "POST", atau "PUT".

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

setPriority

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

Menetapkan prioritas permintaan yang harus berupa salah satu nilai REQUEST_PRIORITY_*. Permintaan diberi prioritas REQUEST_PRIORITY_MEDIUM jika metode ini tidak dipanggil.

Parameter
priority: Int

prioritas permintaan yang harus berupa salah satu nilai REQUEST_PRIORITY_*.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

setRawCompressionDictionary

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

Mengizinkan Cronet menggunakan kamus kompresi yang ditentukan untuk permintaan ini. Jika ditentukan, Cronet dapat memberi sinyal kepada server tentang ketersediaan kamus kompresi tersebut. Agar dapat memberikan efek, CronetEngine yang akan mengeksekusi permintaan ini harus telah dikonfigurasi untuk mengaktifkan skema kompresi yang mendukung kamus eksternal. Hal ini sebagian menerapkan draft-ietf-httpbis-compression-dictionary dalam Cronet. Cronet tidak akan menangani header respons "Use-As-Dictionary" secara langsung, melainkan akan mengandalkan penyematan untuk: menangani header tersebut dan kemudian memanggil UrlRequest.Builder#setCompressionDictionary untuk permintaan yang cocok dengan aturan Use-As-Dictionary; atau mengambil kamus kompresi melalui mekanisme di luar band lainnya, dan kemudian memanggil UrlRequest.Builder#setCompressionDictionary. Cronet akan menafsirkan kamus sebagai hanya cocok dengan UrlRequest ini. Jika permintaan tersebut dialihkan, dan penyemat memutuskan untuk mengikuti pengalihan, kamus juga akan cocok dengan URL baru.

Parameter
dictionarySha256Hash: ByteArray!

SHA-256 kamus kompresi yang ditentukan.

dictionary: ByteBuffer!

kamus kompresi yang dapat digunakan Cronet untuk UrlRequest ini. Ini harus berupa ByteBuffer langsung.

dictionaryId: String!

ID opsional yang terkait dengan kamus ini, harus berupa string kosong jika tidak ada. Jika ada, ID ini akan dikirim melalui header Dictionary-ID. Anda harus menentukannya jika server menentukan ID dalam respons "Use-As-Dictionary".

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

setRequestFinishedListener

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

Menetapkan pemroses yang dipanggil setelah onCanceled(), onFailed(), atau onSucceeded() ditampilkan.

Pemroses dipanggil dengan info permintaan selesai pada java.util.concurrent.Executor yang disediakan oleh getExecutor().

Parameter
listener: RequestFinishedInfo.Listener!

pemroses untuk permintaan yang selesai.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

setTrafficStatsTag

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

Menetapkan tag android.net.TrafficStats yang akan digunakan saat memperhitungkan traffic soket yang disebabkan oleh permintaan ini. Lihat android.net.TrafficStats untuk informasi selengkapnya. Jika tidak ada tag yang ditetapkan (misalnya, metode ini tidak dipanggil), Android akan memperhitungkan traffic soket yang disebabkan oleh permintaan ini seolah-olah nilai tag ditetapkan ke 0.

CATATAN:Menetapkan tag melarang berbagi soket dengan permintaan yang memiliki tag lain, yang dapat memengaruhi performa secara negatif dengan melarang berbagi koneksi. Dengan kata lain, penggunaan soket yang di-multiplex (misalnya HTTP/2 dan QUIC) hanya akan diizinkan jika semua permintaan memiliki tag soket yang sama.

Parameter
tag: Int

nilai tag yang digunakan saat memperhitungkan traffic soket yang disebabkan oleh permintaan ini. Tag antara 0xFFFFFF00 dan 0xFFFFFFFF dicadangkan dan digunakan secara internal oleh layanan sistem seperti android.app.DownloadManager saat melakukan traffic atas nama aplikasi.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

setTrafficStatsUid

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

Menetapkan UID tertentu untuk digunakan saat menghitung traffic soket yang disebabkan oleh permintaan ini. Lihat android.net.TrafficStats untuk mengetahui informasi selengkapnya. Dirancang untuk digunakan saat melakukan operasi atas nama aplikasi lain. Pemanggil harus memiliki izin MODIFY_NETWORK_ACCOUNTING. Secara default, traffic diatribusikan ke UID pemanggil.

CATATAN:Menetapkan UID melarang berbagi soket dengan permintaan yang memiliki UID lain, yang dapat memengaruhi performa secara negatif dengan melarang berbagi koneksi. Dengan kata lain, penggunaan soket yang di-multiplex (misalnya HTTP/2 dan QUIC) hanya akan diizinkan jika semua permintaan memiliki set UID yang sama.

Parameter
uid: Int

UID untuk mengatribusikan traffic soket yang disebabkan oleh permintaan ini.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.

setUploadDataProvider

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

Menetapkan penyedia data upload. Mengalihkan metode ke "POST" jika tidak ditetapkan secara eksplisit. Memulai permintaan akan memunculkan pengecualian jika header Content-Type tidak ditetapkan.

Parameter
uploadDataProvider: UploadDataProvider!

bertanggung jawab untuk menyediakan data upload.

executor: Executor!

Semua metode uploadDataProvider akan dipanggil menggunakan Executor ini. Dapat secara opsional berupa Executor yang sama dengan yang digunakan permintaan itu sendiri.

Hasil
UrlRequest.Builder!

builder untuk memfasilitasi penggabungan.