IOS 쿠키 어플리케이션 통합 패치

2842 단어
1. 쿠키는 무엇입니까?
쿠키는 서버가 컴퓨터를 식별하기 위해 컴퓨터에 잠시 저장된 자료입니다.웹 사이트를 조회할 때 웹 서버는 컴퓨터에 작은 자료를 보내고, 쿠키는 웹 사이트에서 보낸 문자나 선택을 기록합니다.다음에 같은 사이트에 오시면 웹 서버에서 지난번에 남긴 쿠키 자료가 있는지 먼저 보실 수 있습니다. 있으면 쿠키의 내용에 따라 사용자를 판단하여 특정한 웹 내용을 보내 드리겠습니다.쿠키는 브라우저 디렉터리에 저장된 텍스트 파일로 브라우저가 실행될 때 RAM[1]에 저장된다.
2. 왜 내가 쿠키를 저장해야 합니까?
오래된 버전 회사가 팍팍 로그인 작업을 할 때 서버는 우리에게 jsessionID를 줍니다. 이것은 주로 사용자의 신분을 확인하고 지정되지 않은 사용자의 요청을 차단하는 것입니다. 우리는 요청(업로드/로그인)을 할 때 jsessionID를 요청으로 가져와야 합니다(http://xx.x.x.xxx:xxxx;jsessionID=xxxxxx?),새 버전에서 서버 측은 jsessionID 등 로그인 정보를 쿠키에 저장하고 예전처럼 jsessionID를 요청한 URL에 가져올 필요가 없습니다.

AFNetworking 쿠키 읽기 및 설정


1, 3.0 이전 버전
실제로 AF Networking에는 쿠키를 위한 코드가 없지만 NSURL Request를 기본으로 사용하기 때문에 NSHTTPCookie Storage를 통해 쿠키를 조작할 수 있습니다.
읽기 방법:
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString:kServerAddress]];  
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookies];  
[[NSUserDefaults standardUserDefaults] setObject:data forKey:kUserDefaultsCookie];  

쓰기 방법:
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:kUserDefaultsCookie];  
if([cookiesdata length]) {  
    NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];  
    NSHTTPCookie *cookie;  
    for (cookie in cookies) {  
        [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];  
    }  
}  
1.  cookie, , cookie

2.  cookie, webview loadRequest load NSURLRequest cookie。

버전 3.0 이후


(1) 읽기 방법:
  [mgr POST:url parameters:params progress:^(NSProgress * _Nonnull uploadProgress) {
        progress?progress(uploadProgress):nil;
    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        NSHTTPURLResponse *response = (NSHTTPURLResponse *)task.response;
        NSString *cookieString = [[response allHeaderFields] valueForKey:@"Set-Cookie"];
        if(cookieString != nil){
            NSArray *subStr = [cookieString componentsSeparatedByString:@";"];
            NSString * cookieTemp = subStr.firstObject;
            [BSEUserInfo shareMannager].cookieString = cookieTemp;
        }else{
           
        }
        success?success(responseObject):nil;
    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {
        [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
        failure?failure(error):nil;
        
    }];

(2) 쓰기 방법:
[mgr.requestSerializer setValue:cookie forHTTPHeaderField:@"Cookie"];

참고 문헌: AFNetworking 쿠키 읽기 및 설정 솔루션 iOS는 AFNetworking 3.1.0을 사용하여 요청 헤더에 쿠키를 추가하는 방법

좋은 웹페이지 즐겨찾기