我在登录前提交的POST数据 保存在COOKIE里 跳转到到了登录页面COOKIE就空了

解决方案 »

  1.   

    //
    //  ViewController.m
    //  AFNet课程表json测试
    //
    //  Created by Wll on 16/10/6.
    //  Copyright © 2016年 CherryWang. All rights reserved.
    //#import "ViewController.h"
    #import "AFNetworking.h"
    #import "Encryption.h"
    @interface ViewController ()@property (strong, nonatomic) NSDictionary *cookieDictionary;
    @property (copy,nonatomic )NSString *hiddenname;
    @end@implementation ViewController{
        }- (void)viewDidLoad {
        [super viewDidLoad];
        [self findhiddenname];
    }//用get请求 找hiddenname
    -(void)findhiddenname{
        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        manager.responseSerializer = [AFHTTPResponseSerializer serializer];
        [manager GET:@"http://hub.hust.edu.cn/index.jsp" parameters:nil progress:^(NSProgress * _Nonnull downloadProgress) {
            
        } success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) {
            NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
    //        NSLog(@"JSON:%@",string);
            NSRange range = [string rangeOfString:@"hidden"];
            if (range.location!= NSNotFound) {
                NSLog(@"存在hiddenname");
                NSLog(@"%lu",(unsigned long)range.location);
            };
            
            NSRange HiddenNameRange = NSMakeRange(range.location+range.length+19, 20);
            NSString *rawhiddenName = [string substringWithRange:HiddenNameRange];
    //        BOOL isSuffix = [hiddenName hasSuffix:@"n"];
    //        NSLog(@"%d",isSuffix);
    //        if (!isSuffix) {
    //            hiddenName = [rawhiddenName stringByAppendingString:@"n"];
    //        }else{
                self.hiddenname = rawhiddenName;
    //        }
            NSLog(@"%@",_hiddenname);
            
        }failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
            NSLog(@"%@",error); //这里打印错误信息
        }];
        [self performSelector:@selector(loadlogin) withObject:nil afterDelay:1.0];
    }-(void)loadlogin{
        
        AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
        manager.securityPolicy.allowInvalidCertificates = YES;
        
    //    [manager.requestSerializer setValue:cookieValue forHTTPHeaderField:@"Cookie"];
        // 设置参数字典
        NSString *psd = [Encryption md5EncryptWithString:@"854238101,."];
        
        NSDictionary *parameters = @{@"username":@"U201414317",
                                     @"password":psd,
                                     @"in"      :_hiddenname};    [manager POST:@"http://s.hub.hust.edu.cn/hublogin.action" parameters:parameters progress:^(NSProgress * _Nonnull uploadProgress) {        
        } success:^(NSURLSessionDataTask * task, id  responseObject) {
            NSLog(@"登录成功");
            NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURL URLWithString:@"http://s.hub.hust.edu.cn/hublogin.action"]];
            NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookies];
            [[NSUserDefaults standardUserDefaults] setValue:data forKey:@"Logincookies"];
        } failure:^(NSURLSessionDataTask * task, NSError *  error) {
            NSLog(@"失败");
        }];
        
    //    [self loadjson];
        [self performSelector:@selector(loadjson) withObject:nil afterDelay:1.0];
        
    }-(void)loadjson{
        AFHTTPSessionManager *manager2 = [AFHTTPSessionManager manager];
        manager2.responseSerializer = [AFHTTPResponseSerializer serializer];
        NSData *data = [[NSUserDefaults standardUserDefaults] valueForKey:@"Logincookies"];
        if ([data length]) {
            NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:data];
            NSHTTPCookie *cookie;
            for (cookie in cookies) {
                [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
            }
        }
        
        NSDictionary *parameters2 = @{@"start":@"2016-09-26",
                                      @"end":@"2016-11-07"};
        
        [manager2 POST:@"http://s.hub.hust.edu.cn:80/aam/score/CourseInquiry_ido.action" parameters:parameters2 progress:^(NSProgress * _Nonnull uploadProgress) {
            
        } success:^(NSURLSessionDataTask * task, id  responseObject) {
            NSLog(@"成功");
            NSString *string = [[NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
            NSLog(@"JSON:%@",string);
        } failure:^(NSURLSessionDataTask * task, NSError *  error) {
            NSLog(@"%@",error);
        }];
        }
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }@end