1

创建会话后,我可以在NSURLSession的配置中更新cookie吗?可以在创建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

,你不行,你必须创建会话之前创建的配置,从苹果的文档:

它适当地配置您的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]; 
相关问题