Я использую следующее в нескольких моих реальных приложениях, и они работают достаточно хорошо.
Сохранить печенье, когда вы получите ответ:
- (void)saveCookiesToDefaults
{
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject:[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
[[NSUserDefaults standardUserDefaults] setObject:cookiesData forKey:@"SAVED_COOKIES"];
}
нагрузки печенье:
- (void)loadCookies
{
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"SAVED_COOKIES"]];
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in cookies)
{
NSMutableDictionary *newProperties = [[NSMutableDictionary alloc]initWithDictionary:cookie.properties];
NSDate *date = [newProperties objectForKey:NSHTTPCookieExpires];
if(date == nil)
[newProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires];
else
[newProperties setObject:[[NSDate date] dateByAddingTimeInterval:100*12*30*60*60] forKey:NSHTTPCookieExpires];
NSHTTPCookie *newCookie = [NSHTTPCookie cookieWithProperties:newProperties];
[cookieStorage setCookie: newCookie];
NSLog(@"%@",newCookie);
}
}
Очистить куки от сессии:
- (void)clearCookies
{
for (NSHTTPCookie *cookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies])
{
[[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:cookie];
}
[[NSURLCache sharedURLCache] removeAllCachedResponses];
NSURLCache *sharedCache = [[NSURLCache alloc] initWithMemoryCapacity:0 diskCapacity:0 diskPath:nil];
[NSURLCache setSharedURLCache:sharedCache];
[[NSUserDefaults standardUserDefaults] setObject:nil forKey:@"SAVED_COOKIES"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
Проверьте сессии существует:
- (BOOL)hasExistingSession
{
NSData *savedCookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"SAVED_COOKIES"];
if(savedCookiesData == nil)
return 0;
else
{
NSArray *savedCookies = [NSKeyedUnarchiver unarchiveObjectWithData:savedCookiesData];
for (NSHTTPCookie *cookie in savedCookies)
{
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
NSLog(@"HAS EXISTING SESSION: %@", savedCookies.count ? @"YES" : @"NO");
return savedCookies.count;
}
}
Танки ManiaChamp Этот URL http://aubonpain.mloyalconnect.com/microsite/ сохранить Вход Content –
@SaurabhGupta, если он работал, пожалуйста, отметьте его как правильный ответ – ManiaChamp
Этот URL сохранить содержимое для входа: - http://aubonpain.mloyalconnect.com/microsite/ –