Tôi cố gắng để sử dụng NSURLSessions phù du để cung cấp cookie handling riêng biệt cho một số nhiệm vụ trong phạm vi ứng dụng của tôi. Các tác vụ này không bị ràng buộc trực tiếp với giao diện người dùng. Vấn đề: Bất cứ điều gì tôi làm, các cookieAcceptPolicy của NSHTTPCookieStorage phù du vẫn NSHTTPCookieAcceptPolicyNever.Làm thế nào để thiết lập cookieAcceptPolicy cho NSURLSession phù du
Dưới đây là mã của tôi:
// 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];
Kết quả từ NSLog luôn là:
Ephemeral <NSHTTPCookieStorage cookies count:0>
1
trong đó 1 là giá trị cho NSHTTPCookieAcceptPolicyNever (dự kiến 0 cho NSHTTPCookieAcceptPolicyAlways). Các tiêu đề trong phản hồi là có.
tôi có thể làm gì để có NSHTTPCookieStorage nhớ cookie của tôi trong khi phiên giao dịch còn sống? Tôi không cần và không muốn bất kỳ sự kiên trì nào. Tôi chỉ muốn giữ cookie trong bộ nhớ để chúng được sử dụng lại cho các yêu cầu tiếp theo trong cùng một phiên.