Pelajari siklus proses permintaan yang dibuat menggunakan Cronet dan cara mengelolanya menggunakan metode callback yang disediakan oleh library.
Ringkasan siklus proses
Permintaan jaringan yang dibuat menggunakan Library Cronet direpresentasikan oleh
class UrlRequest
.
Konsep berikut penting untuk memahami
siklus proses UrlRequest
:
- Status
- Status adalah kondisi khusus yang dimiliki permintaan pada waktu tertentu. Objek UrlRequest yang dibuat menggunakan Library Cronet bergerak melalui berbagai status dalam siklus prosesnya. Siklus proses permintaan mencakup status awal, serta beberapa status transisi dan final.
- Metode
UrlRequest
- Klien dapat memanggil metode tertentu pada
objek
UrlRequest
bergantung pada statusnya. Metode tersebut memindahkan permintaan dari satu status ke status lainnya. - Metode
Callback
- Dengan mengimplementasikan metode
class
UrlRequest.Callback
, aplikasi Anda dapat menerima info terbaru tentang progres permintaan. Anda dapat mengimplementasikan metode callback untuk memanggil metode objekUrlRequest
yang mengambil siklus proses dari suatu status ke status lainnya.
Daftar berikut menjelaskan alur
siklus proses UrlRequest
:
- Siklus proses berada dalam status Dimulai setelah aplikasi Anda memanggil
metode
start()
. - Server dapat mengirim respons pengalihan, yang membawa alur ke
metode
onRedirectReceived()
. Dalam metode ini, Anda dapat melakukan salah satu tindakan klien berikut:- Ikuti pengalihan menggunakan
followRedirect()
. Metode ini mengembalikan permintaan ke status Dimulai. - Batalkan permintaan menggunakan
cancel()
. Metode ini membawa permintaan ke metodeonCanceled()
tempat aplikasi dapat melakukan operasi tambahan sebelum permintaan dipindahkan ke status Dibatalkan terakhir.
- Ikuti pengalihan menggunakan
- Setelah aplikasi mengikuti semua pengalihan, server akan mengirimkan header respons dan metode
onResponseStarted()
dipanggil. Permintaan berada dalam status Menunggu dibaca(). Aplikasi harus memanggil metoderead()
untuk mencoba membaca bagian dari isi respons. Setelahread()
dipanggil, permintaan berada dalam status Reading, yang terdapat kemungkinan hasil berikut:- Tindakan membaca berhasil, tetapi ada data lain yang tersedia.
onReadCompleted()
dipanggil dan permintaan berada dalam status Menunggu read() lagi. Aplikasi harus memanggil metoderead()
lagi untuk melanjutkan membaca isi respons. Aplikasi juga dapat berhenti membaca permintaan menggunakan metodecancel()
. - Tindakan membaca berhasil, dan tidak ada data lain yang tersedia.
Metode
onSucceeded()
dipanggil dan permintaan sekarang berada dalam status Berhasil terakhir. - Tindakan membaca gagal. Metode
onFailed
dipanggil dan status akhir permintaan sekarang menjadi Gagal.
- Tindakan membaca berhasil, tetapi ada data lain yang tersedia.
Diagram berikut menunjukkan siklus proses
objek UrlRequest
:
Keterangan | |
---|---|
Status awal | Status akhir |
Status transisi | Metode callback |
Metode UrlRequest |