मैं अपने एंड्रॉइड एप्लिकेशन में कई async अनुरोधों के साथ okhttp लाइब्रेरी का उपयोग कर रहा हूं। सभी अनुरोधों को हेडर में सेट करने के लिए टोकन की आवश्यकता होती है। कभी-कभी मुझे रिफ्रेश टोकन प्रदान करते हुए उस टोकन को रीफ्रेश करने की आवश्यकता होती है, इसलिए मैं OkHttp की प्रमाणीकरण कक्षा का उपयोग करने का निर्णय लेता हूं।Okhttp प्रमाणीकरण multithreading
क्या होगा जब 2 या अधिक एसिंक अनुरोधों को लगभग एक ही समय में सर्वर से 401 कोड मिलेगा?
@Override
public Request authenticate(Proxy proxy, Response response) throws IOException
{
return null;
}
प्रत्येक अनुरोध के लिए कहा जाता है प्रमाणक की विधि होगी, या यह सिर्फ पहला अनुरोध के लिए एक बार कहा जाएगा, कि 401 मिल गया?
टोकन को केवल एक बार रीफ्रेश कैसे करें?
इस तरह, आप लौटे अनुरोधों को खो देते हैं, है ना? जिस तरह से मैंने नीचे रखा है, आप फिर से उन अनुरोधों को कॉल कर सकते हैं। – antonicg
आप किस परिदृश्य का मतलब है? यदि कोई नया उत्पन्न होने पर सर्वर पुरानी पहुंच टोकन की समयसीमा समाप्त नहीं करता है, तो आपको इसे अवरुद्ध करने की आवश्यकता नहीं है और जब हम किसी को खो देते हैं तो यह कोई समस्या नहीं है क्योंकि हमारे पास अभी भी एक टोकन पहुंच होगी जो काम करेगा। बेशक यह बचाव करता है कि आपका सिस्टम कैसे काम करता है। दूसरे परिदृश्य में मैंने बताया कि पहली जगह 'रीफ्रेश एक्सेस टोकन' अनुरोधों को आक्रमण करने से रोकने के लिए कैसे करें (सिंक्रनाइज़ ब्लॉक इसे करने से रोक देगा), इसलिए कुछ भी नहीं खो जाएगा। –
यह सच है, यदि पुराने अनुरोधों को अवरुद्ध करने के लिए सर्वर पुरानी पहुंच की समयसीमा समाप्त नहीं करता है। घोषणा के लिए धन्यवाद। – antonicg