2015-03-14 8 views
19

मेरे एंड्रॉइड एप्लिकेशन में, मैं कुछ एपीआई तक पहुंचने के लिए सक्षम कैशिंग के साथ OkHttpClient के साथ रेट्रोफिट का उपयोग कर रहा हूं। हमारे कुछ एपीआई कभी-कभी खाली डेटा लौटाते हैं। हम क्लाइंट के लिए एक विशिष्ट एपीआई से डेटा पुनः लोड करने के लिए ऐप में "रीफ्रेश" बटन प्रदान करते हैं।कैश को अनदेखा करने और सर्वर से ताज़ा करने के लिए OkHttpClient को कैसे बताना है?

मैं OkHttpClient को कैसे बता सकता हूं कि एक विशिष्ट अनुरोध को कैश किए गए प्रविष्टि को अनदेखा करना चाहिए। वैकल्पिक रूप से, क्या एक अनुरोध के अनुरूप कैश प्रतिक्रिया को हटाने के लिए एक तंत्र है?

मुझे कैश.remove (अनुरोध) विधि दिखाई देती है लेकिन इसे निजी के रूप में चिह्नित किया जाता है।

उत्तर

21

जेक व्हार्टन के रूप में issues में सुझाव दिया, इस कैश की अनदेखी करने के कार्य करें:

request.setCacheControl(CacheControl.FORCE_NETWORK); 
+0

मैं एक पुराने संस्करण है, और अपने समाधान काम कर 3.4 के लिए अद्यतन का उपयोग कर रहा था। धन्यवाद इंडर – nidhin

+0

क्या यह अनुरोध क्लास से नहीं, OkHttpClient क्लास से कैश कंट्रोल सेट करने में सक्षम है? – zihadrizkyef

+4

हां - वैश्विक रूप से कैशिंग को अक्षम करने के लिए, क्लाइंट को शून्य कैश के साथ बनाएं: 'नया ओकेएचटीपी क्लाइंट()। नयाबिल्डर()। कैश (शून्य) .बिल्ड(); ' – Simon

संबंधित मुद्दे

 संबंधित मुद्दे