-
-
Save cikichen/f4fd5ddf1339fa30cc491b4507869dc0 to your computer and use it in GitHub Desktop.
Cookie相關
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//=================================================================================================== | |
//取得與設定APP內部的cookie | |
//=================================================================================================== | |
- (void)setCookie:(NSString *)key withValue:(NSString *)value { | |
NSArray *keys = [NSArray arrayWithObjects: | |
NSHTTPCookieDomain, | |
NSHTTPCookieExpires, | |
NSHTTPCookieName, | |
NSHTTPCookiePath, | |
NSHTTPCookieValue, nil]; | |
NSArray *objects = [NSArray arrayWithObjects: | |
@"http://www.google.com", | |
[NSDate distantFuture], | |
key, | |
@"/", | |
value, nil]; | |
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; | |
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:dict]; | |
NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; | |
[sharedHTTPCookieStorage setCookie:cookie]; | |
} | |
- (NSString *)getCookie:(NSString *)key { | |
NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; | |
if ([sharedHTTPCookieStorage cookieAcceptPolicy] != NSHTTPCookieAcceptPolicyAlways) { | |
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; | |
} | |
NSArray *cookies = [sharedHTTPCookieStorage cookiesForURL:[NSURL URLWithString:@"http://www.google.com"]]; | |
NSEnumerator *enumerator = [cookies objectEnumerator]; | |
NSHTTPCookie *cookie; | |
while (cookie = [enumerator nextObject]){ | |
if ([[cookie name] isEqualToString:key]){ | |
return [cookie value]; | |
} | |
} | |
return nil; | |
} | |
//=================================================================================================== | |
//建立自定義的cookie | |
//需要把cookie訊息先放到臨時的NSDictionary裡 | |
//然後在利用這個NSDictionary去建例cookie | |
//NSDictionary鍵值是系統預先定義的常數 | |
//=================================================================================================== | |
NSDictionary * cookieInfo = [NSDictionary dictionaryWithObjectsAndKeys: | |
@"12345", NSHTTPCookieValue | |
, @"UserID", NSHTTPCookieName | |
, @"/", NSHTTPCookiePath | |
, @"DOMAIN_ROOT", NSHTTPCookieDomain | |
,nil]; | |
NSHTTPCookie * userCookie = [NSHTTPCookie cookieWithProperties:cookieInfo]; | |
//將cookie放到容器中 | |
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:userCookie]; | |
//建立自定義的cookie | |
//需要把cookie訊息先放到臨時的NSDictionary裡 | |
//然後在利用這個NSDictionary去建例cookie | |
//NSDictionary鍵值是系統預先定義的常數 | |
NSDictionary * cookieInfo = [NSDictionary dictionaryWithObjectsAndKeys: | |
@"12345", NSHTTPCookieValue | |
, @"UserID", NSHTTPCookieName | |
, @"/", NSHTTPCookiePath | |
, @"DOMAIN_ROOT", NSHTTPCookieDomain | |
,nil]; | |
NSHTTPCookie * userCookie = [NSHTTPCookie cookieWithProperties:cookieInfo]; | |
//將cookie放到容器中 | |
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:userCookie]; | |
//=================================================================================================== | |
//讀取與寫入cookie | |
//=================================================================================================== | |
-(void)writeCookie{ | |
NSArray *keys = [NSArray arrayWithObjects: | |
NSHTTPCookieSecure, | |
NSHTTPCookieDomain, | |
NSHTTPCookieExpires, | |
NSHTTPCookieName, | |
NSHTTPCookiePath, | |
NSHTTPCookieValue,nil]; | |
NSArray *objects = [NSArray arrayWithObjects: | |
@"TRUE", | |
@"www.google.com", | |
nil, //[[NSDate date] initWithTimeIntervalSinceNow:86500], | |
@"SPM_auth", | |
@"/spwebapi/", | |
@"FeiXiaoLin",nil]; | |
NSDictionary *dict = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; | |
NSHTTPCookie *cookieA = [NSHTTPCookie cookieWithProperties:dict]; | |
NSHTTPCookieStorage *sharedHTTPCookie = [NSHTTPCookieStorage sharedHTTPCookieStorage]; | |
[sharedHTTPCookie setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways]; | |
[sharedHTTPCookie setCookie:cookieA]; | |
NSLog(@"写入后:%@",[[NSHTTPCookieStorage sharedHTTPCookieStorage]cookies]); | |
[self readCookie]; | |
} | |
-(void)readCookie { | |
// NSHTTPCookie *cookieB; | |
// NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; | |
NSLog(@"cookies:%@",[[NSHTTPCookieStorage sharedHTTPCookieStorage]cookies]); | |
} | |
//=================================================================================================== | |
//從UserDefaults讀出Cookie資料 | |
//=================================================================================================== | |
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:@"MySavedCookies"]; | |
if([cookiesdata length]) { | |
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata]; | |
NSHTTPCookie *cookie; | |
for (cookie in cookies) { | |
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment