iOS session验证

和后台一起做demo,验证验证码后台需要根据session分辨我的验证码是iOS传的还是android传的。做一下小记录。

iOS中的session存放在cookie中,cookie就像多个字典.其中的一个放着我们要的session。

我需要的那条cookie打印出来是:

其中JSESSIONID对应的值6A33E2CA6AB31D11DC8AB1A63CA0DF76就是我想要的了,这个是后台需要验证的东西。

我的做法是在第一次请求成功后,拿到session的值,保存下来

NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

DDLog(@"cookieStorage: %@", cookieStorage);

for (NSHTTPCookie *cookie in [cookieStorage cookies]) {

DDLog(@"-----cookie: %@", cookie);

if ([

cookie.name isEqualToString:@"JSESSIONID"]) {

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[userDefaults setValue:cookie.value forKey:@"JSESSIONID"];

}

}


然后在下一次请求前把得到的session值赋值给session

NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];

[cookieProperties setObject:@"JSESSIONID" forKey:NSHTTPCookieName];

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

[cookieProperties setObject:[userDefaults valueForKey:@"JSESSIONID"] forKey:NSHTTPCookieValue];

NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];

[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

然后后台就说我这session操作可以了。自己不是很懂,参考网址iOS开发session验证问题。

你可能感兴趣的:(iOS session验证)