हमारे पास एक एंड्रॉइड एप्लिकेशन है जिसके लिए उपयोगकर्ता को कैप्चा का जवाब दर्ज करना होगा। कैप्चा हमारे सर्वर पर जेनरेट किया गया है। जब जवाब, यह सत्यापित करने के लिए सर्वर को भेजा जाता है।HttpURLConnection का पुन: उपयोग करना ताकि सत्र को जीवित रखने के लिए
समस्या यह है कि जब मुझे कैप्चा I के अनुरोध के बाद HttpURLConnection को बंद करना है तो पता लगाएं कि उत्तर अलग-अलग सत्र पर अलग-अलग सत्र पर चल रहा है। इस वजह से कैप्चा चेक विफल रहता है क्योंकि यह सत्र निर्भर है।
क्या कनेक्शन को जीवित रखने का कोई तरीका है या क्या मुझे एक अलग पथ का पालन करना चाहिए? मुझे पता है कि समकक्ष आईफोन एप्लिकेशन में वे "जुड़े" रहते हैं और इस प्रकार एक ही सत्रिक होता है।
संपादित करें:
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
URL urlObj = new URL(urlPath);
conn = (HttpURLConnection) urlObj.openConnection();
if (urlPath.toLowerCase().startsWith("https:")) {
initializeHttpsConnection((HttpsURLConnection) conn);
}
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Language", "en-US");
conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
conn.setRequestProperty("Content-Length", Integer.toString(bodyData.length));
if (_sessionIdCookie != null) {
conn.setRequestProperty("Cookie", _sessionIdCookie);
}
// Connect
conn.setDoInput(true);
conn.setDoOutput(true);
conn.connect();
के अंदर एप्लिकेशन लॉन्च पर हो सकता है एक बार मैंने "कुकी मैनेजर" को परिभाषित किया है, तो क्या मैं सत्रिक धारण करता हूं? – theblitz
ठीक है, मेरे पास आपके लिए एक महत्वपूर्ण सवाल है: क्या आप एपीआई 9 + (2.3+) का उपयोग कर रहे हैं? यदि हां, तो आप इसे जोड़ने से पहले बस जोड़ लें, आपको ठीक होना चाहिए। यदि आप 2.2 या उससे कम का उपयोग कर रहे हैं तो आपको org.apache पैकेज से HttpClient का उपयोग करना चाहिए। यदि आप 2.2 के लिए कर रहे हैं तो मैं कुछ उदाहरण कोड जोड़ूंगा। – DallaRosa
इस समय यह 2.3 पर सेट है लेकिन यह सुनिश्चित नहीं है कि हम इसे छोड़ने जा रहे हैं। इसे शीर्ष 2.2 नीचे छोड़ दें लेकिन सुनिश्चित नहीं है। ऐसा लगता है कि यहां 99% डिवाइस 2.3+ हैं, इसलिए ठीक होना चाहिए। – theblitz