ดูวงจรของคำขอที่สร้างขึ้นโดยใช้ Cronet และวิธีจัดการคำขอเหล่านั้น โดยใช้วิธีการเรียกกลับที่ไลบรารีมีให้
ภาพรวมวงจร
คำขอเครือข่ายที่สร้างขึ้นโดยใช้ไลบรารี Cronet จะแสดงด้วยคลาส
UrlRequest
แนวคิดต่อไปนี้มีความสำคัญต่อการทำความเข้าใจวงจรUrlRequest
- รัฐ
- สถานะคือเงื่อนไขเฉพาะที่คำขออยู่ ณ เวลาใดเวลาหนึ่ง ออบเจ็กต์ UrlRequest ที่สร้างขึ้นโดยใช้ไลบรารี Cronet จะเปลี่ยนสถานะต่างๆ ในวงจรของออบเจ็กต์ วงจรคำขอ ประกอบด้วยสถานะเริ่มต้น สถานะชั่วคราว และสถานะสุดท้าย
UrlRequest
วิธี- ไคลเอ็นต์สามารถเรียกใช้เมธอดที่เฉพาะเจาะจงในออบเจ็กต์
UrlRequest
ได้โดยขึ้นอยู่กับสถานะ ซึ่งจะย้ายคำขอจากสถานะหนึ่งไปยังอีกสถานะหนึ่ง Callback
วิธี- การใช้วิธีการของคลาส
UrlRequest.Callback
จะช่วยให้แอปของคุณ ได้รับการอัปเดตเกี่ยวกับความคืบหน้าของคำขอ คุณสามารถใช้ เมธอดเรียกกลับเพื่อเรียกเมธอดของออบเจ็กต์UrlRequest
ที่ใช้รอบการทำงาน จากสถานะหนึ่งไปยังอีกสถานะหนึ่ง
รายการต่อไปนี้อธิบายขั้นตอนของวงจร
UrlRequest
- วงจรนี้จะอยู่ในสถานะเริ่มแล้วหลังจากที่แอปเรียกใช้เมธอด
start()
- เซิร์ฟเวอร์อาจส่งการตอบกลับการเปลี่ยนเส้นทาง ซึ่งจะนำโฟลว์ไปยังเมธอด
onRedirectReceived()
ในวิธีนี้ คุณสามารถดำเนินการอย่างใดอย่างหนึ่งต่อไปนี้ในฝั่งไคลเอ็นต์- ติดตามการเปลี่ยนเส้นทางโดยใช้
followRedirect()
วิธีนี้จะเปลี่ยนคำขอกลับไปเป็นสถานะเริ่มแล้ว - ยกเลิกคำขอโดยใช้
cancel()
วิธีนี้จะนำคำขอไปยังเมธอดonCanceled()
ซึ่งแอปสามารถดำเนินการเพิ่มเติมได้ก่อนที่จะย้ายคำขอ ไปยังสถานะสุดท้ายที่ยกเลิกแล้ว
- ติดตามการเปลี่ยนเส้นทางโดยใช้
- หลังจากที่แอปทำตามการเปลี่ยนเส้นทางทั้งหมดแล้ว เซิร์ฟเวอร์จะส่งส่วนหัวการตอบกลับและเรียกใช้เมธอด
onResponseStarted()
คำขออยู่ในสถานะรอ read() แอปควรเรียกใช้เมธอดread()
เพื่อพยายามอ่านส่วนหนึ่งของเนื้อหาการตอบกลับ หลังจากเรียกใช้read()
แล้ว คำขอจะอยู่ในสถานะกำลังอ่าน ซึ่งมีผลลัพธ์ที่เป็นไปได้ดังนี้- การดำเนินการอ่านสำเร็จแล้ว แต่ยังมีข้อมูลเพิ่มเติม ระบบจะเรียกใช้
onReadCompleted()
และคำขอจะกลับไปอยู่ในสถานะรอ read() อีกครั้ง แอปควรเรียกใช้เมธอดread()
อีกครั้งเพื่ออ่านเนื้อหาการตอบกลับต่อไป นอกจากนี้ แอปยังหยุดอ่านคำขอได้โดยใช้เมธอดcancel()
- การดำเนินการอ่านสำเร็จแล้ว และไม่มีข้อมูลเพิ่มเติม
ระบบจะเรียกใช้เมธอด
onSucceeded()
และคำขอจะอยู่ในสถานะสุดท้ายเป็นสำเร็จ - การดำเนินการอ่านไม่สำเร็จ ระบบจะเรียกใช้เมธอด
onFailed
และสถานะสุดท้ายของคำขอจะเป็นไม่สำเร็จ
- การดำเนินการอ่านสำเร็จแล้ว แต่ยังมีข้อมูลเพิ่มเติม ระบบจะเรียกใช้
แผนภาพต่อไปนี้แสดงวงจรของออบเจ็กต์ UrlRequest
วงจรชีวิตของคำขอ Cronet
Legend | |
---|---|
UrlRequest วิธี |