क्या यह पता लगाने का कोई तरीका है कि एक रेट्रोफिट प्रतिक्रिया कॉन्फ़िगर की गई ओकेएचटीपी कैश से आती है या लाइव प्रतिक्रिया है?पता लगाएं कि ओकेएचटीपी प्रतिक्रिया कैश से है (रेट्रोफिट के साथ)
क्लाइंट परिभाषा:
Cache cache = new Cache(getCacheDirectory(context), 1024 * 1024 * 10);
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.cache(cache)
.build();
एपीआई परिभाषा:
@GET("/object")
Observable<Result<SomeObject>> getSomeObject();
उदाहरण कॉल:
RetroApi retroApi = new Retrofit.Builder()
.client(okHttpClient)
.baseUrl(baseUrl)
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(RetroApi.class);
result = retroApi.getSomeObject().subscribe((Result<SomeObject> someObjectResult) -> {
isFromCache(someObjectResult); // ???
});
क्या यह उद्धरण किसी बात या किसी अन्य ऑनलाइन संसाधन से आता है? यदि हां, तो क्या आप एक लिंक प्रदान कर सकते हैं? – user2340612
'result.response() कच्चे()। CacheResponse()! = Null' की जांच करना वास्तव में बेहतर है। यदि ग्राहक कैश किए गए प्रतिक्रिया को फिर से मान्य करता है और 304 प्राप्त करता है, तो 'नेटवर्क रेस्पॉन्स()' और 'कैश रिस्पॉन्स()' दोनों गैर-शून्य होंगे। – apottere
हां, अर्थशास्त्र के आधार पर और आपका वांछित ऐप व्यवहार क्या है। –