我可以在创建 NSURLSession 后更新其配置中的 cookie 吗?
Posted
技术标签:
【中文标题】我可以在创建 NSURLSession 后更新其配置中的 cookie 吗?【英文标题】:Can I update cookies in the configuration of a NSURLSession after its creation? 【发布时间】:2014-10-17 09:49:42 【问题描述】:我可以在创建会话后更新 NSURLSession 配置中的 cookie 吗?
我使用此代码更新 cookie,但它似乎不起作用。
self.session = [NSURLSession sessionWithConfiguration:config delegate:self delegateQueue:nil];
self.session.configuration.HTTPShouldSetCookies = NO;
self.session.configuration.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyAlways;
self.session.configuration.HTTPAdditionalHeaders = [NSHTTPCookie requestHeaderFieldsWithCookies:cookiesArray];
谢谢,
【问题讨论】:
【参考方案1】:不,您不能,您必须在创建会话之前创建配置,来自 Apple 文档:
在使用 NSURLSessionConfiguration 对象初始化会话对象之前,适当地配置它很重要。会话对象会复制您提供的配置设置并使用这些设置来配置会话。配置完成后,会话对象会忽略您对 NSURLSessionConfiguration 对象所做的任何更改。如果您需要修改传输策略,则必须更新会话配置对象并使用它来创建新的 NSURLSession 对象。
https://developer.apple.com/library/ios/documentation/Foundation/Reference/NSURLSessionConfiguration_class/index.html
例如
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
configuration.HTTPShouldSetCookies = NO;
configuration.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyAlways;
configuration.HTTPAdditionalHeaders = [NSHTTPCookie requestHeaderFieldsWithCookies:cookiesArray];
NSURLSession *session = [NSURLSession initWithSessionConfiguration:configuration];
【讨论】:
以上是关于我可以在创建 NSURLSession 后更新其配置中的 cookie 吗?的主要内容,如果未能解决你的问题,请参考以下文章
NSURLSession downloadTaskWithResumeData 在重新启动应用程序后给出错误