วงจรชีวิตของคำขอ Cronet

ดูวงจรของคำขอที่สร้างขึ้นโดยใช้ Cronet และวิธีจัดการคำขอเหล่านั้น โดยใช้วิธีการเรียกกลับที่ไลบรารีมีให้

ภาพรวมวงจร

คำขอเครือข่ายที่สร้างขึ้นโดยใช้ไลบรารี Cronet จะแสดงด้วยคลาส UrlRequest แนวคิดต่อไปนี้มีความสำคัญต่อการทำความเข้าใจวงจรUrlRequest

รัฐ
สถานะคือเงื่อนไขเฉพาะที่คำขออยู่ ณ เวลาใดเวลาหนึ่ง ออบเจ็กต์ UrlRequest ที่สร้างขึ้นโดยใช้ไลบรารี Cronet จะเปลี่ยนสถานะต่างๆ ในวงจรของออบเจ็กต์ วงจรคำขอ ประกอบด้วยสถานะเริ่มต้น สถานะชั่วคราว และสถานะสุดท้าย
UrlRequest วิธี
ไคลเอ็นต์สามารถเรียกใช้เมธอดที่เฉพาะเจาะจงในออบเจ็กต์ UrlRequest ได้โดยขึ้นอยู่กับสถานะ ซึ่งจะย้ายคำขอจากสถานะหนึ่งไปยังอีกสถานะหนึ่ง
Callback วิธี
การใช้วิธีการของคลาส UrlRequest.Callback จะช่วยให้แอปของคุณ ได้รับการอัปเดตเกี่ยวกับความคืบหน้าของคำขอ คุณสามารถใช้ เมธอดเรียกกลับเพื่อเรียกเมธอดของออบเจ็กต์ UrlRequest ที่ใช้รอบการทำงาน จากสถานะหนึ่งไปยังอีกสถานะหนึ่ง

รายการต่อไปนี้อธิบายขั้นตอนของวงจร UrlRequest

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

แผนภาพต่อไปนี้แสดงวงจรของออบเจ็กต์ UrlRequest

แผนภาพวงจรคำขอ Cronet
วงจรชีวิตของคำขอ Cronet

Legend
ไอคอนคำอธิบายสถานะเริ่มต้นของ Cronet สถานะเริ่มต้น ไอคอนคำอธิบายสถานะสุดท้ายของ Cronet สถานะสุดท้าย
ไอคอนคำอธิบายสถานะการเปลี่ยนผ่านของ Cronet สถานะชั่วคราว ไอคอนคำอธิบายเมธอด Cronet Callback วิธีการเรียกกลับ
ไอคอนคำอธิบายการดำเนินการของไคลเอ็นต์ Cronet UrlRequest วิธี