दिलचस्प पोस्ट
क्या मुझे <img> या टैग, आदि के अंत में "/" की आवश्यकता है? पंक्तियां / संयोजन पंक्तियों को मिलाएं Google मानचित्र एपीआई वी 3: अजीब यूआई डिस्प्ले विचलन (स्क्रीनशॉट के साथ) टेस्टिंग टेक्स्ट () XPath में नोड्स बनाम स्ट्रिंग मान मैं कैसे परीक्षण कर सकता हूँ अगर स्ट्रिंग में कोई अक्षर जावास्क्रिप्ट का उपयोग कर अपरकेस या लोअरकेस है? JavaScript में प्रमुख शून्य के साथ पूर्णांक कैसे आउटपुट करें नियमित स्ट्रिंग और शब्दशः स्ट्रिंग के बीच अंतर क्या है? अपनी खुद की एसटीएल कंटेनर लेखन फ़ायरफ़ॉक्स एक्सटेंशन। एक्सपीआई फ़ाइल संरचना: विवरण, सामग्री, निर्माण, और स्थापना आईओएस पर डुप्लिकेट पृष्ठभूमि-अटैचमेंट को दोहराने के लिए कैसे एक NumPy सरणी को एक सीएसवी फ़ाइल में डंप करें कैसे जावास्क्रिप्ट के साथ स्क्रीन रिज़ॉल्यूशन का पता लगाने के लिए? कन्स्ट्रक्टर और एनजीओएनआईआईटीआईटी के बीच अंतर मोंगो डीबी: एक से कई संग्रहों से डेटा एकत्र करें..कैसे? Windows पर अपाचे Hadoop 2.1.0 चलाना

मैं एंड्रॉइड और / या जावा में एचटीटीपी क्लाइंट के साथ कुकीज़ का प्रबंधन कैसे करूं?

मैं एक साइट पर लॉगिन करने और उस सत्र / कुकी को बनाए रखने की कोशिश कर रहा हूं ताकि सर्वर मेरा लॉगिन पहचान सके, लेकिन मैं कुकी से प्रतिक्रिया से निकालने का एक तरीका निकालने और मेरे लॉगिन को बनाए रखने के लिए एक अनुरोध करने के लिए संघर्ष कर रहा हूं। मैं सोच रहा हूं कि मुझे "सेट-कुकी" शीर्षक या कुकीस्टोर का उपयोग करने के बारे में जाना चाहिए। कोई भी मदद बहुत ही सराहनीय होगी। यहाँ मेरा कोड है, मेरे पास टिप्पणी के साथ, जहां मुझे लगता है कि getHeader / getCookie विधियां चलेंगी।

public class Http { DefaultHttpClient client = new DefaultHttpClient(); HttpGet request; HttpEntity entity; HttpResponse response; HttpPost post; CookieStore cookieStore = new BasicCookieStore(); HttpContext localContext = new BasicHttpContext(); public static void setContext() { localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); } public static void getPage(String url) throws Exception { request = new HttpGet(url); response = client.execute(request, localContext); PARSER.preParse(url, response); } public static HttpResponse postPage(List<NameValuePair> params, String host, String action) throws Exception { post = new HttpPost(host + action); post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); response = client.execute(post, localContext); entity = response.getEntity(); if(entity != null) { entity.consumeContent(); } return response; } public void destoyHttp() { client.getConnectionManager().shutdown(); } } 

दूसरों की आशा में मेरी समझ में मेरी भ्रम को बेहतर ढंग से समझना कोड जोड़ रहा है जो मुझे पता है कि काम करता है और एक सत्र बनाए रखता है, लेकिन जब मैंने कोड को मेरे वास्तविक आवेदन में स्थानांतरित करने की कोशिश की तो यह लाइन के नीचे कहीं टूट गया।

 public class HttpClientTest extends Activity{ DefaultHttpClient client = new DefaultHttpClient(); HttpGet request; HttpEntity entity; List<Cookie> cookies; HttpResponse response; HttpPost post; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { getRequest(); } catch (Exception e) { Log.d("My Activity", "Failed"); e.printStackTrace(); } } public void getRequest() throws Exception { final String TAG = "MyActivity"; request = new HttpGet("http://gc.gamestotal.com/i.cfm?p=login&se=4"); response = client.execute(request); String action = "i.cfm?&1028&p=login&se=4"; String yourServer = "http://gc.gamestotal.com/"; post = new HttpPost(yourServer + action); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("nic", "myusername")); params.add(new BasicNameValuePair("password", "mypassword")); params.add(new BasicNameValuePair("server", "4")); post.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); response = client.execute(post); entity = response.getEntity(); if(entity != null){ entity.consumeContent(); } request = new HttpGet("http://gc.gamestotal.com/i.cfm?f=com_empire&cm=3"); response = client.execute(request); if(entity != null) { entity.consumeContent(); } } } 

मैं एक तथ्य यह जानता हूं कि यह काम करता है, और आप देख सकते हैं कि इस कोड में मैं कंटेंट () का उपयोग करता हूं, लेकिन जोड़कर शीर्ष कोड में कोई फर्क नहीं पड़ता, इसलिए मैंने इसे छोड़ दिया। कोई विचार?

संपादित करें: मैं अभी भी एक सत्र जा रहा रखने में काम कर रहा कोड प्राप्त करने में असमर्थ हूँ मैं अपने वर्तमान कोड से कुकीज़ पोस्ट कर रहा हूं, साथ काम कर रहा दूसरे कोड की कुकीज़ के साथ। शायद किसी को कोई समस्या दिखाई देगी, मैं निश्चित रूप से नहीं करता।

 08-31 06:53:50.318: VERBOSE/SFGC(496): - [version: 0][name: CFID][value: 26651316][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:53:50.329: VERBOSE/SFGC(496): - [version: 0][name: CFTOKEN][value: 96917381][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:53:50.329: VERBOSE/SFGC(496): - [version: 0][name: CFCLIENT_SFGC_106Y][value: CFTOKEN2%3D735125416524430%23COUNTRY%3D56%23DOWNLOADFLAG%3D0%23OCHAT%3D1%23PM%5FDATE%3D%7Bts+%272010%2D08%2D31+14%3A53%3A45%27%7D%23REGION%3D3%23SCREEN%3D800%23S%5FGC%5FIMAGELOC%3Di%2Fw%2F%23TIMEZONE%3D%2D600%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:53:50.339: VERBOSE/SFGC(496): - [version: 0][name: CFGLOBALS][value: HITCOUNT%3D2%23LASTVISIT%3D%7Bts+%272010%2D08%2D31+14%3A53%3A45%27%7D%23TIMECREATED%3D%7Bts+%272010%2D08%2D31+14%3A53%3A39%27%7D%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:53:51.938: VERBOSE/SFGC(496): - [version: 0][name: CFID][value: 26651316][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:53:51.938: VERBOSE/SFGC(496): - [version: 0][name: CFTOKEN][value: 96917381][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:53:51.938: VERBOSE/SFGC(496): - [version: 0][name: CFCLIENT_SFGC_106Y][value: CFTOKEN2%3D735125416524430%23COUNTRY%3D56%23DOWNLOADFLAG%3D0%23OCHAT%3D1%23PM%5FDATE%3D%7Bts+%272010%2D08%2D31+14%3A53%3A45%27%7D%23REGION%3D3%23SCREEN%3D800%23S%5FGC%5FIMAGELOC%3Di%2Fw%2F%23TIMEZONE%3D%2D600%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:53:51.948: VERBOSE/SFGC(496): - [version: 0][name: CFGLOBALS][value: HITCOUNT%3D3%23LASTVISIT%3D%7Bts+%272010%2D08%2D31+14%3A53%3A46%27%7D%23TIMECREATED%3D%7Bts+%272010%2D08%2D31+14%3A53%3A39%27%7D%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:41.628: DEBUG/MyActivity(469): - [version: 0][name: CFID][value: 26651274][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:41.638: DEBUG/MyActivity(469): - [version: 0][name: CFTOKEN][value: 58361320][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:41.638: DEBUG/MyActivity(469): - [version: 0][name: CFCLIENT_SFGC_106Y][value: CFTOKEN2%3D735125815099420%23COUNTRY%3D56%23DOWNLOADFLAG%3D0%23OCHAT%3D1%23PM%5FDATE%3D%7Bts+%272010%2D08%2D31+14%3A52%3A36%27%7D%23REGION%3D3%23SCREEN%3D800%23S%5FGC%5FIMAGELOC%3Di%2Fw%2F%23TIMEZONE%3D%2D600%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:41.648: DEBUG/MyActivity(469): - [version: 0][name: CFGLOBALS][value: HITCOUNT%3D2%23LASTVISIT%3D%7Bts+%272010%2D08%2D31+14%3A52%3A36%27%7D%23TIMECREATED%3D%7Bts+%272010%2D08%2D31+14%3A52%3A33%27%7D%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:44.138: DEBUG/MyActivity(469): - [version: 0][name: CFID][value: 26651274][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:44.138: DEBUG/MyActivity(469): - [version: 0][name: CFTOKEN][value: 58361320][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:44.138: DEBUG/MyActivity(469): - [version: 0][name: CFCLIENT_SFGC_106Y][value: CFTOKEN2%3D735125815099420%23COUNTRY%3D56%23DOWNLOADFLAG%3D0%23OCHAT%3D1%23PM%5FDATE%3D%7Bts+%272010%2D08%2D31+14%3A52%3A36%27%7D%23REGION%3D3%23SCREEN%3D800%23S%5FGC%5FIMAGELOC%3Di%2Fw%2F%23TIMEZONE%3D%2D600%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 08-31 06:52:44.138: DEBUG/MyActivity(469): - [version: 0][name: CFGLOBALS][value: HITCOUNT%3D4%23LASTVISIT%3D%7Bts+%272010%2D08%2D31+14%3A52%3A38%27%7D%23TIMECREATED%3D%7Bts+%272010%2D08%2D31+14%3A52%3A33%27%7D%23][domain: gc.gamestotal.com][path: /][expiry: Sun Sep 27 00:00:00 GMT+00:00 2037] 

वेब के समाधान से एकत्रित समाधान "मैं एंड्रॉइड और / या जावा में एचटीटीपी क्लाइंट के साथ कुकीज़ का प्रबंधन कैसे करूं?"

आपको HttpContext का उपयोग करने की आवश्यकता है कुकी स्टोर को संदर्भ में सेट करें और प्रक्षेपण विधि में HttpGet / HttpPost के साथ लंबा संदर्भ पास करें। आशा है कि यह मदद करनी चाहिए

उदाहरण देखें: पूरा कोड यहां पाया जा सकता है

  // Create a local instance of cookie store CookieStore cookieStore = new BasicCookieStore(); // Create local HTTP context HttpContext localContext = new BasicHttpContext(); // Bind custom cookie store to the local context localContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); HttpGet httpget = new HttpGet("http://www.google.com/"); System.out.println("executing request " + httpget.getURI()); // Pass local context as a parameter HttpResponse response = httpclient.execute(httpget, localContext); 

मैं अपना कोड काम करने में असमर्थ था (मैं इसे बाद में फिर से काम कर सकता हूं), लेकिन मुझे यहां उपयोगी कोड मिल गया, जो कि httpclient -> http.client (apache), पोस्ट / विधि प्राप्त करते हुए एंड्रॉइड प्रोजेक्ट का उपयोग कर रहा है। चार्ली कोलिन्स द्वारा, जो कि ZXing Android उदाहरण में एचटीपीपी कोड के समान है। मैं अंततः ZXing कोड पर जा सकते हैं।

मेरे लिए यह काम नहीं कर रहा था, जब तक कि मैंने सभी अनुरोधों के लिए HttpContext और CookieStore स्थिर नहीं बनाया।