2010-04-22 9 views
27

मैं एक क्लाइंट लिख रहा हूं जो समय के साथ बदल रहे एक्सएमएल डेटा के लिए बार-बार http अनुरोध कर रहा है। ऐसा लगता है कि एंड्रॉइड स्टैक मेरे पेज अनुरोधों को कैश कर रहा है और उसी पृष्ठ को बार-बार लौट रहा है। मैं कैसे सुनिश्चित कर सकता हूं कि यह हर बार एक नया पृष्ठ प्राप्त करता है?एंड्रॉइड को मेरे HTTP अनुरोध पर कैश किए गए प्रतिक्रिया को वापस करने से कैसे रोकें?

- कोड ---

HttpClient client = new DefaultHttpClient(); 
HttpGet request = new HttpGet(url); 
HttpResponse response; 
    response = client.execute(request); 

InputStream in; 
in = response.getEntity().getContent(); 
BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 

धन्यवाद, गेरी

उत्तर

25

एक HTTP शीर्ष लेख जोड़ें:

Cache-Control: no-cache 

और देखते हैं कि अगर काम करता है।

+0

नो-कैश और नो-स्टोर का उपयोग परिणाम को प्रभावित नहीं करता है। एक फर्जी पैरामीटर जोड़ना जो परिवर्तन करता है या तो काम नहीं करता है। मैं उपयोग कर रहा हूं: एचटीपी क्लाइंट क्लाइंट = नया DefaultHttpClient(); एचटीपीजी अनुरोध = नया एचटीपीजीट (यूआरएल); एचटीपी प्रतिक्रिया प्रतिक्रिया; { request.setHeader ("कैश-कंट्रोल", "नो-कैश") आज़माएं; request.setHeader ("कैश-कंट्रोल", "नो-स्टोर"); प्रतिक्रिया = client.execute (अनुरोध); किसी और को इसके साथ कोई सफलता मिली है? अन्यथा मंच मेरे लिए बेकार है। – Gerry

+0

क्या आपने दोनों शीर्षलेख जोड़े थे? या सिर्फ एक समय में? – Kylar

+0

एक ही समय में दोनों शीर्षलेख। – Gerry

26

URL के अंत पर एक अप्रयुक्त पैरामीटर जोड़ें:

HttpGet request = new HttpGet(url + "?unused=" + someRandomString()); 

जहां someRandomString() शायद वर्तमान समय शामिल है ।

यह कच्चे तेल की है, लेकिन यह काफी सब बाहर के कारकों एक "उचित" समाधान विफल, गलत ढंग से कॉन्फ़िगर या गाड़ी प्रॉक्सी की तरह कर सकते हैं कि की परवाह किए बिना काम करने के लिए गारंटी है।

+1

वह मेरे लिए चाल किया मिलता है, लेकिन वहाँ आदेश समस्या को नाकाम करने में जोड़ने के लिए क्लाइंट की तरफ किसी भी शीर्ष लेख हैं के लिए? – kaneda

2

सुझाव: यादृच्छिक स्ट्रिंग

HttpGet request = new HttpGet(url + "?unused=" + UUID.randomUUID().toString());