مراحل نشاط طلب Cronet

تعرف على دورة حياة الطلبات التي تم إنشاؤها باستخدام Cronet وكيفية إدارتها باستخدام طرق معاودة الاتصال التي توفرها المكتبة.

نظرة عامة على مراحل النشاط

تمثِّل الفئة UrlRequest طلبات الشبكة التي تم إنشاؤها باستخدام مكتبة Cronet. من المهم فهم المفاهيم التالية حول مراحل نشاط UrlRequest:

الحالات
الحالة هي الحالة المحدّدة التي يكون فيها الطلب في فترة محدّدة. تنتقل عناصر UrlRequest التي تم إنشاؤها باستخدام مكتبة كرونت عبر حالات مختلفة خلال مراحل نشاطها. تتضمن دورة حياة الطلب حالة أولية وحالات انتقالية ونهائية متعددة.
طريقتان (UrlRequest)
يمكن للعملاء استدعاء طرق محددة في كائنات UrlRequest بناءً على الحالة. تعمل الطريقتان على نقل الطلب من حالة إلى أخرى.
طريقتان (Callback)
من خلال تنفيذ طُرق الفئة UrlRequest.Callback، يمكن أن يتلقّى تطبيقك آخر الأخبار عن مستوى تقدّم الطلب. يمكنك تنفيذ طرق استدعاء الدوال البرمجية لاستدعاء طرق كائن UrlRequest الذي ينقل مراحل النشاط من حالة إلى أخرى.

تصف القائمة التالية سير عمل UrlRequest:

  1. تكون مراحل النشاط في حالة تم البدء بعد أن يطلب تطبيقك طريقة start().
  2. يمكن أن يرسل الخادم استجابة إعادة التوجيه، والتي تأخذ التدفق إلى الإجراء onRedirectReceived(). وبهذه الطريقة، يمكنك اتّخاذ أحد الإجراءات التالية للعميل:
    • اتبِع عملية إعادة التوجيه باستخدام followRedirect(). تعيد هذه الطريقة الطلب إلى الحالة Started (تم البدء).
    • يمكنك إلغاء الطلب باستخدام cancel(). تأخذ هذه الطريقة الطلب إلى طريقة onCanceled() حيث يمكن للتطبيق إجراء عمليات إضافية قبل نقل الطلب إلى الحالة النهائية ملغاة.
  3. بعد أن يتّبع التطبيق جميع عمليات إعادة التوجيه، يرسل الخادم عناوين الاستجابة ويُستدعى الإجراء onResponseStarted(). الطلب في حالة انتظار القراءة(). يجب أن يستدعي التطبيق الطريقة read() لمحاولة قراءة جزء من نص الاستجابة. بعد استدعاء read()، يكون الطلب في حالة القراءة، حيث تظهر النتائج المحتملة التالية:
    • تمّت عملية القراءة بنجاح، ولكن تتوفّر المزيد من البيانات. يتم استدعاء onReadCompleted() ويصبح الطلب في حالة انتظار القراءة() مرة أخرى. يجب أن يستدعي التطبيق الطريقة read() مرة أخرى لمواصلة قراءة نص الاستجابة. ويمكن أيضًا للتطبيق التوقف عن قراءة الطلب باستخدام طريقة cancel() .
    • تم إجراء القراءة بنجاح، ولا تتوفّر بيانات أخرى. تم استدعاء الطريقة onSucceeded() ويصبح الطلب الآن في الحالة النهائية تم بنجاح.
    • تعذَّر إجراء القراءة. تم استدعاء الإجراء onFailed وأصبحت الحالة النهائية للطلب الآن تعذّر.

يوضّح المخطّط التالي دورة حياة عنصر UrlRequest:

الرسم التخطيطي لدورة
حياة طلب Cronet
مراحل تنفيذ طلبات Cronet

أسطورة
حالة أولية واحدة (رمز وسيلة إيضاح الحالة الأولية في Cronet) حالة نهائية واحدة (رمز وسيلة إيضاح الحالة النهائية في Cronet)
حالة انتقالية واحدة (رمز وسيلة إيضاح الحالة الانتقالية في Cronet) رمز وسيلة إيضاح طرق معاودة الاتصال في Cronet طريقة لرد الاتصال
رمز وسيلة إيضاح إجراءات العميل في Cronet طرق UrlRequest