2013-02-16 11 views
23

मैं एक आईओएस ऐप बना रहा हूं जो बैकएंड के लिए Google ऐप इंजन का उपयोग करता है। Google एक HTML लॉगिन साइट प्रदान करता है जो प्रमाणीकरण कुकी संग्रहीत करता है। यदि मैं UIWebView में उस साइट पर जाता हूं, और उपयोगकर्ता लॉग इन करता है, तो क्या वे कुकीज स्टोरेज में होंगी जहां उन्हें उसी साइट पर अनुरोध करते समय NSRLConnection द्वारा उठाया जाएगा?UIWebView और NSURLConnection साझा कुकी संग्रहण करें?

+0

धन्यवाद प्रवेश के बाद बनाई गई कुकीज़ भेज देंगे। मैं इस प्रश्न को लगभग 10 मिनट के लिए पूछने का तरीका जानने का प्रयास कर रहा हूं। –

+1

@Yar: खुशी है कि आप इसे मिला! – Linuxios

उत्तर

22

UIWebView की कुकी NSHTTPCookieStorage sharedHTTPCookieStorage] के माध्यम से एक सैंडबॉक्स किए गए कुकी स्टोरेज में संग्रहीत की जाएगी। आप इस तरह से NSURLConnection में इस कुकी संग्रहण का उपयोग कर सकते हैं:

NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"__YOUR_URL__"]]; 
NSDictionary *headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies]; 
[request setAllHTTPHeaderFields:headers]; //A previously created NSMutableURLRequest 

अब आप सामान्य रूप से एक NSURLConnection में NSURLRequest उपयोग कर सकते हैं और उस में UIWebView

+0

क्या मैं पृष्ठ के URL, या डोमेन के साथ '" YOUR_URL "को प्रतिस्थापित करता हूं? – Linuxios

+0

आपके मामले में '.google.com' के साथ YOUR_URL को बदलना ठीक होना चाहिए, सामान्यतः वह यूआरएल है जो कुकी के डोमेन फ़ील्ड से मेल खाता है। यदि आपको नहीं पता कि सटीक यूआरएल ('.google.com 'सभी google.com सबडोमेन से मेल खाता है) तो आप कुकी कुकी में सभी कुकी प्राप्त कर सकते हैं:' [[NSHTTPCookieStorage shareHTTPCookieStorage] कुकीज़]'। संभवतः सर्वर कुकीज़ को अनदेखा कर देगा (यदि आपके पास अन्य हैं) जो उसके लिए नहीं हैं। –

+0

तो '। Google.com'' google.com' और सभी सबडोमेन के लिए है? – Linuxios

संबंधित मुद्दे