iOS cookie

1 NSMutableURLRequest请求时,会找到和该域名相同的cookie值,放到一起,然后请求。

2 [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie]; 不会在本地磁盘写入,只做内存缓存。

3 添加cookie

 NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
    [cookieProperties setObject:@"authKey" forKey:NSHTTPCookieName];
    [cookieProperties setObject:@".tabobao.com" forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:@"sfda" forKey:NSHTTPCookieValue];
    [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];

    NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    
    //添加cookie
    NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
    for (NSHTTPCookie *tempCookie in cookies) {
        NSLog(@"tep %@",tempCookie);
    }

4 遍历cookie

  NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
    for (NSHTTPCookie *tempCookie in cookies) {
        NSLog(@"tep %@",tempCookie);
    }

5 删除cookie

  for (NSHTTPCookie *curCookie in [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]) {
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] deleteCookie:curCookie];
    }

6测试代码

- (void)viewDidLoad {
    [super viewDidLoad];
    [self writeCookie];
    [self testquest];
}
- (void)writeCookie{
    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
    [cookieProperties setObject:@"authKey" forKey:NSHTTPCookieName];
    [cookieProperties setObject:@".taobao.com" forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:@"sfda" forKey:NSHTTPCookieValue];
    [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];

    //添加cookie
    NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
    
    NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];
    for (NSHTTPCookie *tempCookie in cookies) {
        NSLog(@"tep %@",tempCookie);
    }

    
}
- (long long)testquest{
    NSString *nsUrl = [NSString stringWithFormat:@"https://taobao.com"];
    NSMutableURLRequest *nsmRequest = [[NSMutableURLRequest alloc] init] ;
    [nsmRequest setURL:[NSURL URLWithString:nsUrl]];
    [nsmRequest setHTTPMethod:@"HEAD"];
    [nsmRequest setTimeoutInterval:30];
    [nsmRequest addValue:[NSString stringWithFormat:@"text/html"] forHTTPHeaderField: @"Content-Type"];
    [nsmRequest addValue:[NSString stringWithFormat:@"no-cache"] forHTTPHeaderField: @"Cache-Control"];
    
    //get response
    NSHTTPURLResponse* nsResponse = nil;
    NSError *nsError = nil;
    NSData *nsResponseData = nil;
    
    @try
    {
        nsResponseData = [NSURLConnection sendSynchronousRequest:nsmRequest returningResponse:&nsResponse error:&nsError];
    }
    @catch (NSException * e)
    {
        return 0;
    }
    
    
    if( nsResponseData == nil )
    {
        if( -1001 == [nsError code] )
        {
            return 0;
        }
        
        
        return 0;
    }
}

赋值代码后,使用Charles抓包就好。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 当前一些公司为了快速出一款app,很多时候采用UINavigationController+WebView或者Na...
    vicool阅读 1,789评论 0 1
  • 在APP开发中,cookie也开始变的越来越重要了。为了更好的切换,注销和登录账户,就必须熟悉cookie的用法。...
    hzy1314阅读 545评论 0 0
  • cookie机制采用的是在客户端保持 HTTP 状态信息的方案 Cookie是在浏览器访问WEB服务器的某个资源时...
    葛高召阅读 3,032评论 0 0
  • 网络框架AFNetworking 没有对Cookie 做过处理。 可以使用NSHTTPCookieStorage实...
    iOSWater阅读 419评论 0 0
  • 在APP开发中,cookie也开始变的越来越重要了。为了更好的切换,注销和登录账户,就必须熟悉cookie的用法。...
    悲伤C小调阅读 4,991评论 1 5