IOS 쿠키 어플리케이션 통합 패치
쿠키는 서버가 컴퓨터를 식별하기 위해 컴퓨터에 잠시 저장된 자료입니다.웹 사이트를 조회할 때 웹 서버는 컴퓨터에 작은 자료를 보내고, 쿠키는 웹 사이트에서 보낸 문자나 선택을 기록합니다.다음에 같은 사이트에 오시면 웹 서버에서 지난번에 남긴 쿠키 자료가 있는지 먼저 보실 수 있습니다. 있으면 쿠키의 내용에 따라 사용자를 판단하여 특정한 웹 내용을 보내 드리겠습니다.쿠키는 브라우저 디렉터리에 저장된 텍스트 파일로 브라우저가 실행될 때 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을 사용하여 요청 헤더에 쿠키를 추가하는 방법
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
[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;
}];
[mgr.requestSerializer setValue:cookie forHTTPHeaderField:@"Cookie"];
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.