TMa*_*Man 9 session nshttpcookie ios afnetworking
在:这个问题据说AFNetworking在后台自动处理cookie,但在我之前提出的一个问题中,我在登录时在php上保存会话时遇到了麻烦.一旦我关闭(停止调试)在Xcode中)应用程序并在会话中回去了.答案是坚持像这样的cookie来解决问题:
NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"User"];
if ([cookiesData length] > 0) {
for (NSHTTPCookie *cookie in [NSKeyedUnarchiver cookiesData]) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试做这样的事情时,这给了我一个应用程序崩溃.当我登录时,我将NSUserDefault设置为:
[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"User"];
//Then synthesize
Run Code Online (Sandbox Code Playgroud)
这是错误的使用方法吗?NSHTTPCookieStorage甚至是我的问题吗?谢谢.
clo*_*pez 37
使用以下命令,这是保存和加载适合我的cookie的正确方法:
- (void)saveCookies{
NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject: cookiesData forKey: @"sessionCookies"];
[defaults synchronize];
}
- (void)loadCookies{
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"sessionCookies"]];
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in cookies){
[cookieStorage setCookie: cookie];
}
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
10712 次 |
| 最近记录: |