UrlRequest.Builder

public abstract class UrlRequest.Builder


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

Ringkasan

Konstanta

static final int

Prioritas permintaan tertinggi.

static final int

Prioritas permintaan terendah.

static final int

Prioritas permintaan rendah.

static final int

Prioritas permintaan sangat rendah.

static final int

Prioritas permintaan sedang.

Konstruktor publik

Metode publik

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

Menambahkan header permintaan.

UrlRequest.Builder

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(long networkHandle)

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

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

UrlRequest.Builder
@UrlRequest.Experimental
setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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

public static final int REQUEST_PRIORITY_HIGHEST = 4

Prioritas permintaan tertinggi. Diteruskan ke setPriority.

REQUEST_PRIORITY_IDLE

public static final int REQUEST_PRIORITY_IDLE = 0

Prioritas permintaan terendah. Diteruskan ke setPriority.

REQUEST_PRIORITY_LOW

public static final int REQUEST_PRIORITY_LOW = 2

Prioritas permintaan rendah. Diteruskan ke setPriority.

REQUEST_PRIORITY_LOWEST

public static final int REQUEST_PRIORITY_LOWEST = 1

Prioritas permintaan sangat rendah. Diteruskan ke setPriority.

REQUEST_PRIORITY_MEDIUM

public static final int REQUEST_PRIORITY_MEDIUM = 3

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

Konstruktor publik

Builder

public Builder()

Metode publik

addHeader

public abstract UrlRequest.Builder addHeader(String header, String value)

Menambahkan header permintaan.

Parameter
String header

nama header.

String value

nilai header.

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

addRequestAnnotation

public UrlRequest.Builder addRequestAnnotation(Object annotation)

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

Parameter
Object annotation

objek untuk diteruskan ke RequestFinishedInfo.Listener dengan RequestFinishedInfo.

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

allowDirectExecutor

public abstract UrlRequest.Builder allowDirectExecutor()

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

public UrlRequest.Builder bindToNetwork(long networkHandle)

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
long networkHandle

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

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

build

public abstract UrlRequest build()

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

public abstract UrlRequest.Builder disableCache()

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

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

setHttpMethod

public abstract UrlRequest.Builder setHttpMethod(String method)

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

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

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

setPriority

public abstract UrlRequest.Builder setPriority(int priority)

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

Parameter
int priority

prioritas permintaan yang harus berupa salah satu nilai REQUEST_PRIORITY_*.

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

setRawCompressionDictionary

@UrlRequest.Experimental
public UrlRequest.Builder setRawCompressionDictionary(
    byte[] dictionarySha256Hash,
    ByteBuffer dictionary,
    String dictionaryId
)

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
byte[] dictionarySha256Hash

SHA-256 kamus kompresi yang ditentukan.

ByteBuffer dictionary

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

String dictionaryId

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

public UrlRequest.Builder setRequestFinishedListener(RequestFinishedInfo.Listener listener)

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
RequestFinishedInfo.Listener listener

pemroses untuk permintaan yang selesai.

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

setTrafficStatsTag

public UrlRequest.Builder setTrafficStatsTag(int tag)

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
int tag

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

public UrlRequest.Builder setTrafficStatsUid(int uid)

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
int uid

UID untuk mengatribusikan traffic soket yang disebabkan oleh permintaan ini.

Hasil
UrlRequest.Builder

builder untuk memfasilitasi penggabungan.

setUploadDataProvider

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

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.