일시적인 NSURLSessions를 사용하여 내 앱 내의 여러 작업에 별도의 쿠키 처리를 제공하려고합니다. 이러한 작업은 UI에 직접 바인딩되지 않습니다. 문제 : 내가하는 일, 임시 NSHTTPCookieStorage의 cookieAcceptPolicy는 NSHTTPCookieAcceptPolicyNever으로 유지됩니다.임시 NSURLSession에 대해 cookieAcceptPolicy를 설정하는 방법
// use a pure in-memory configuration with its own private cache, cookie, and credential store
__block NSURLSessionConfiguration* config = [NSURLSessionConfiguration ephemeralSessionConfiguration];
// do anything to accept all cookies
config.HTTPShouldSetCookies = YES;
config.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyAlways;
config.HTTPCookieStorage.cookieAcceptPolicy = NSHTTPCookieAcceptPolicyAlways;
__block NSURLSession* session = [NSURLSession sessionWithConfiguration:config];
NSURLSessionDataTask* task = [session dataTaskWithURL:[NSURL URLWithString:@"https://test.cgmlife.com/Catalogs"]
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSHTTPCookieStorage* cookies = session.configuration.HTTPCookieStorage;
NSLog(@"%@", cookies);
NSLog(@"%lu", cookies.cookieAcceptPolicy);
}];
[task resume];
NSLog의 출력은 항상 : 1 NSHTTPCookieAcceptPolicyNever의 값입니다
Ephemeral <NSHTTPCookieStorage cookies count:0>
1
이 (NSHTTPCookieAcceptPolicyAlways 0 예상)
여기 내 코드입니다. 응답의 헤더가 있습니다.
NSHTTPCookieStorage가 세션이 살아있는 동안 내 쿠키를 기억하게하려면 어떻게해야합니까? 나는 필요가없고 끈기를 원하지 않는다. 쿠키를 메모리에 보관하여 동일한 세션에서 추가 요청을 위해 쿠키를 다시 사용하고자합니다.