请UIWebView中失去PHP会话cookie(Keep losing php session c

2019-07-20 06:30发布

我是新来的论坛,也很新的iOS的开发。 我在与一个UIWebView,我在那里继续流失登录权限的HTML形式设置一个phpsession饼干(含过期设置为8H,其在桌面上的工作)的麻烦。 看来UIWebView中投饼干走约一个小时左右后,而不是8小时。 我读过NSHTTPCookieStorage应饼干自动处理,应用程序进入后台模式或退出后也。

该NSHTTPCookie看起来是这样的

NSHTTPCookie版本:0名: “PHPSESSID”值: “6f267fdc94c1ce5fcsdgg49b59a8f46b” expiresDate:2013年2月21日1时27分58秒0000创建:2001-01-01 00:00:01 0000(1)sessionOnly:FALSE域: “mydomain.com”路径: “/”的isSecure:FALSE

而我呢保存退出/进入睡眠NSUserDefaults的和未来的前景到时/打开应用程序再次加载它,喜欢这里建议: 如何设置装载已登录用户-iPhone我的Web视图 -不过,我不断失去的登录。

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

我目前做这个(根据下面的文章):

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];

Answer 1:

我在我的应用程序的许多要求使用,每次当我发送一个请求时,我得到了来自URL饼干NSHTTPCookieStorage 。 我不使用NSUserDefaults或别的东西来存储的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"];
}

它的工作原理



文章来源: Keep losing php session cookie in UIWebView