Android वॉली टाइमआउट को संभालने के लिए आपको उपयोग करने की आवश्यकता है RetryPolicy
RetryPolicy
- वॉली आपके अनुरोधों के लिए अपने रिट्रीपोलिस को लागू करने का एक आसान तरीका प्रदान करता है।
- वॉली सभी अनुरोधों के लिए डिफ़ॉल्ट सॉकेट और ConnectionTImeout से 5 सेकंड के लिए सेट करता है।
RetryPolicy
एक इंटरफ़ेस है जहाँ आपको अपने तर्क को लागू करने की आवश्यकता होती है कि कैसे आप एक विशेष अनुरोध को पुनः प्राप्त करना चाहते हैं जब एक टाइमआउट होता है।
यह इन तीन मापदंडों से संबंधित है
- टाइमआउट - प्रत्येक रिट्री प्रयास में मिली में सॉकेट टाइमआउट निर्दिष्ट करता है।
- रिट्रीट की संख्या - कई बार रिट्री का प्रयास किया जाता है।
- बैक ऑफ मल्टीप्लायर - एक मल्टीप्लायर जो प्रत्येक रिट्री प्रयास के लिए सॉकेट के लिए घातीय समय निर्धारित करने के लिए उपयोग किया जाता है।
पूर्व के लिए। यदि इन मूल्यों के साथ RetryPolicy बनाया जाता है
टाइमआउट - 3000 एमएस, रिट्री अटेम्प्ट्स की संख्या - 2, बैक ऑफ मल्टीप्लायर - 2.0
प्रयास 1:
- समय = समय + (समय * वापस गुणक);
- समय = 3000 + 6000 = 9000 मी
- सॉकेट टाइमआउट = समय;
- अनुरोध 9 सेकेंड के सॉकेट टाइमआउट के साथ भेजा गया
प्रयास 2:
- समय = समय + (समय * वापस गुणक);
- समय = 9000 + 18000 = 27000 मी
- सॉकेट टाइमआउट = समय;
- अनुरोध 27 सेकेंड के सॉकेट टाइमआउट के साथ भेजा गया
तो रिट्री अटेम्प्ट 2 के अंत में अगर सॉकेट टाइमआउट होता है तो वॉली TimeoutError
आपके यूआई एरर रिस्पॉन्स हैंडलर में फेंक देगा ।
//Set a retry policy in case of SocketTimeout & ConnectionTimeout Exceptions.
//Volley does retry for you if you have specified the policy.
jsonObjRequest.setRetryPolicy(new DefaultRetryPolicy(5000,
DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));