gpt4 book ai didi

ios - AFNetworking 自动保存 Cookie

转载 作者:技术小花猫 更新时间:2023-10-29 11:09:57 26 4
gpt4 key购买 nike

在:This Question据说 AFNetworking 会在后台自动处理 cookie,但在 Previous 中我问的问题是,我在登录时无法将 session 保留在服务器上,这是在 php 中创建的。一旦我关闭(停止在 Xcode 中进行调试),应用程序并返回 session 就消失了。答案是像这样持久化 cookie 来解决问题:

NSData *cookiesData = [[NSUserDefaults standardUserDefaults] objectForKey:@"User"];
if ([cookiesData length] > 0) {
for (NSHTTPCookie *cookie in [NSKeyedUnarchiver cookiesData]) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
}

当我尝试做这样的事情时,这会让我的应用程序崩溃。当我登录时,我像这样设置 NSUserDefault:

[[NSUserDefaults standardUserDefaults] setObject:data forKey:@"User"];
//Then synthesize

这是错误的使用方式吗? NSHTTPCookieStorage 甚至是我的问题吗?谢谢。

最佳答案

使用以下方法,这是保存和加载对我有用的 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];
}

}

希望对您有所帮助!

关于ios - AFNetworking 自动保存 Cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14387662/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com