在UIWebView中继续丢失php会话cookie

我是新来的论坛,也是相当新的iOS开发。 我遇到了一个UIWebView的麻烦,在那里我一直失去login权限的HTML表单设置一个Phypssion Cookie(过期设置为8小时,这在桌面上)。 看起来,UIWebView在大约一个小时左右的时间内抛出cookie,而不是8小时。 我已经阅读NSHTTPCookieStorage应该自动处理cookies,即使应用程序进入后台模式或退出。

NSHTTPCookie看起来像这样

NSHTTPCookie版本:0名称:“PHPSESSID”值:“6f267fdc94c1ce5fcsdgg49b59a8f46b”expiresDate:2013-02-21 01:27:58 +0000已创build:2001-01-01 00:00:01 +0000(1)sessionOnly:FALSE域: “mydomain.com”path:“/”isSecure:FALSE

我将它保存在退出/睡眠到NSUserDefaults并加载到前景/打开应用程序时,如推荐这里: 如何设置我的Web视图加载已login用户-iPhone – 仍然,我不断失去login。

任何人都可以指出我的方向? 非常感谢!

我目前正在这样做(根据下面的post):

NSURL *lastURL = [[self.webView request] mainDocumentURL]; if (lastURL.absoluteString == NULL) { lastURL = [NSURL URLWithString:@"http://mydomain.com/"]; } NSArray *cookiesForDomain = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://mydomain.com"]]; NSMutableURLRequest *newRequest = [NSMutableURLRequest requestWithURL:lastURL]; for (NSHTTPCookie *cookie in cookiesForDomain) { NSString *cookieString = [NSString stringWithFormat:@"%@=%@", [cookie name], [cookie value]]; [newRequest setValue:cookieString forHTTPHeaderField:@"Cookie"]; NSLog(@"inserted cookie into request: %@", cookie); } [self.webView loadRequest:newRequest]; 

我在我的应用程序中使用了很多请求,每当我发送请求时,我都会从NSHTTPCookieStorage获取URL。 我不使用NSUserDefaults或其他东西来存储cookie。

当我发送新的请求时,我自己设置所需的cookie

 NSURL *myURL = .... NSMutableRequest *mutableRequest = .... NSArray *cookiesToSet = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:myURL]; for (NSHTTPCookie *cookie in cookiesToSet) { [cookieStringToSet appendFormat:@"%@=%@;", cookie.name, cookie.value]; } if (cookieStringToSet.length) { [mutableRequest setValue:cookieStringToSet forHTTPHeaderField:@"Cookie"]; } 

它工作