Dan*_*ert 8 cookies cookiestore nsurlsession
我试图使用短暂的NSURLSessions为我的应用程序中的几个任务提供单独的cookie处理.这些任务不直接绑定到UI.问题:无论我做什么,短暂的NSHTTPCookieStorage的cookieAcceptPolicy仍然是NSHTTPCookieAcceptPolicyNever.
这是我的代码:
// 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];
Run Code Online (Sandbox Code Playgroud)
NSLog的输出始终是:
Ephemeral <NSHTTPCookieStorage cookies count:0>
1
Run Code Online (Sandbox Code Playgroud)
其中1是NSHTTPCookieAcceptPolicyNever的值(对于NSHTTPCookieAcceptPolicyAlways,预期为0).响应中的标题就在那里.
在会话还活着的时候,我可以做些什么来让NSHTTPCookieStorage记住我的cookie?我不需要也不想要任何持久性.我只想将cookie保留在内存中,以便在同一会话中重用它们以进一步请求.
看起来临时会话永远不会存储 cookie。eskimo1 在 devforums 上说:
ISTR 认为临时会话配置无法按照人们根据文档期望的方式工作。我从来没有抽出时间来详细研究这个问题,但看来你已经这样做了。您应该就此提交一个错误;实施和文档显然不同步,因此需要修复其中之一。
| 归档时间: |
|
| 查看次数: |
1399 次 |
| 最近记录: |