2013-02-16 30 views
23

Arka uç için Google App Engine'i kullanan bir iOS uygulaması yapıyorum. Google, bir kimlik doğrulama çerezini saklayan bir HTML giriş sitesi sağlar. Bu siteyi bir UIWebView'de ziyaret edersem ve kullanıcı giriş yaparsa, aynı tanımlama bilgisine istekte bulunurken bu çerezler bir NSURLConnection tarafından alınacakları depolama alanında mı olacak?UIWebView ve NSURLConnection çerez paylaşımını paylaşıyor mu?

+0

teşekkürler giriş sonra oluşturulan çerezleri gönderir: Bu şekilde NSURLConnection bu çerez depolama kullanabilirsiniz. Bu soruyu yaklaşık 10 dakika boyunca sormanın bir yolunu bulmaya çalışıyorum. –

+1

@Yar: O zaman bulduğun için sevindim! – Linuxios

cevap

22

UIWebView'in çerezi, NSHTTPCookieStorage sharedHTTPCookieStorage] aracılığıyla erişilebilen korumalı bir çerez deposunda saklanır.

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

Şimdi normalde NSURLConnection içinde NSURLRequest kullanabilirsiniz ve UIWebView

+0

"YOUR_URL" işlevini sayfanın URL'si veya alan adı ile mi değiştirdim? – Linuxios

+0

YOUR_URL ifadesinin '.google.com' ile değiştirilmesi durumunda, genel olarak bu, çerezin alan adıyla eşleşen URL’dir. Tam URL'nin ne olduğunu bilmiyorsanız ('.google.com', tüm google.com alt alanları ile eşleşir) çerezler deposundaki tüm çerezleri şu şekilde alabilirsiniz:' [[NSHTTPCookieStorage sharedHTTPCookieStorage] çerezleri] '. Muhtemelen sunucu sadece onun için olmayan (başkalarına sahipseniz) kurabiyeleri görmezden gelir. –

+0

So '.google.com' google.com' ve tüm alt alan adları içindir? Tam olarak – Linuxios