2011-05-28 21 views
5

से सर्वलेट तक पहुंचने पर HTTP सत्र को बनाए रखना मैं एंड्रॉइड से सर्वलेट तक पहुंचने पर सत्र बनाए रखने में सक्षम नहीं हूं। मैं सिर्फ यूआरएल के साथ सर्वोपरि को पास करता हूं जो डेटाबेस से डेटा एकत्र करता है और इसे सत्र में संग्रहीत करता है, लेकिन मैं इसे बाद के अनुरोधों पर पुनः प्राप्त नहीं कर पा रहा हूं।Android

क्या जब मैं PrintWriter को सर्वलेट में बंद करता हूं तो सत्र समाप्त हो जाता है?

उत्तर

4

यह क्लाइंट पक्ष में एक समस्या है। एक कुकी द्वारा HTTP सत्र बनाए रखा जाता है। क्लाइंट को यह सुनिश्चित करने की ज़रूरत है कि यह HTTP spec के अनुसार बाद के अनुरोधों पर कुकी को ठीक से भेजता है। HttpClient API CookieStore क्लास प्रदान करता है जिसके लिए आपको HttpContext में सेट करने की आवश्यकता है जिसे आपको बदले में प्रत्येक HttpClient#execute() कॉल पर जाने की आवश्यकता है।

HttpClient httpClient = new DefaultHttpClient(); 
CookieStore cookieStore = new BasicCookieStore(); 
HttpContext httpContext = new BasicHttpContext(); 
httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); 
// ... 

HttpResponse response1 = httpClient.execute(yourMethod1, httpContext); 
// ... 

HttpResponse response2 = httpClient.execute(yourMethod2, httpContext); 
// ... 

कैसे सत्र काम करता है के बारे में अधिक जानने के लिए इस उत्तर पढ़ें: How do servlets work? Instantiation, sessions, shared variables and multithreading