我想在我的應用程序中使用短暫的NSURLSessions爲幾個任務提供單獨的cookie處理。這些任務不直接綁定到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的輸出始終:
Ephemeral <NSHTTPCookieStorage cookies count:0>
1
其中1是NSHTTPCookieAcceptPolicyNever的值(NSHTTPCookieAcceptPolicyAlways預期0)。響應中的標題在那裏。
當會話還活着時,我能做些什麼來讓NSHTTPCookieStorage記住我的cookies?我不需要也不想要任何持久性。我只是想讓cookies保留在內存中,以便在同一會話中用於進一步的請求。