gpt4 book ai didi

iPhone:应用程序重新启动时不会保存 NSHTTPCookie

转载 作者:行者123 更新时间:2023-12-03 18:15:11 26 4
gpt4 key购买 nike

在我的 iPhone 应用程序中,我希望能够在应用程序重新启动时重用相同的服务器端 session 。服务器上的 session 由 cookie 标识,该 cookie 在每次请求时发送。当我重新启动应用程序时,该 cookie 消失了,我无法再使用相同的 session 。

当我使用NSHTTPCookieStorage查找从服务器获得的cookie时,我注意到[cookie isSessionOnly]返回YES。我的印象是,这就是为什么在我的应用程序重新启动时不保存 cookie 的原因。我需要做什么才能使我的 cookie 不只是 session ?我必须从服务器发送哪些 HTTP header ?

最佳答案

您可以通过保存 cookie 的属性字典来保存 cookie,然后在重新连接之前将其恢复为新的 cookie。

保存:

NSArray* allCookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:URL]];
for (NSHTTPCookie *cookie in allCookies) {
if ([cookie.name isEqualToString:MY_COOKIE]) {
NSMutableDictionary* cookieDictionary = [NSMutableDictionary dictionaryWithDictionary:[[NSUserDefaults standardUserDefaults] dictionaryForKey:PREF_KEY]];
[cookieDictionary setValue:cookie.properties forKey:URL];
[[NSUserDefaults standardUserDefaults] setObject:cookieDictionary forKey:PREF_KEY];
}
}

负载:

NSDictionary* cookieDictionary = [[NSUserDefaults standardUserDefaults] dictionaryForKey:PREF_KEY];
NSDictionary* cookieProperties = [cookieDictionary valueForKey:URL];
if (cookieProperties != nil) {
NSHTTPCookie* cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
NSArray* cookieArray = [NSArray arrayWithObject:cookie];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies:cookieArray forURL:[NSURL URLWithString:URL] mainDocumentURL:nil];
}

关于iPhone:应用程序重新启动时不会保存 NSHTTPCookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2662530/

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