我可以在NSURLSession创建后更新配置中的cookie吗?

时间:2014-10-17 09:49:43

标签: ios objective-c cookies nsurlsession nsurlsessionconfiguration

我可以在创建会话后更新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 个答案:

答案 0 :(得分:1)

不,你不能,你必须在创建会话之前从Apple文档创建配置:

  

在使用NSURLSessionConfiguration对象初始化会话对象之前,必须正确配置它。会话对象会复制您提供的配置设置,并使用这些设置来配置会话。配置完成后,会话对象将忽略您对NSURLSessionConfiguration对象所做的任何更改。如果需要修改传输策略,则必须更新会话配置对象并使用它来创建新的NSURLSession对象。

https://developer.apple.com/library/IOs/documentation/Foundation/Reference/NSURLSessionConfiguration_class/index.html

e.g。

NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
configuration.HTTPShouldSetCookies = NO;
configuration.HTTPCookieAcceptPolicy = NSHTTPCookieAcceptPolicyAlways;
configuration.HTTPAdditionalHeaders = [NSHTTPCookie requestHeaderFieldsWithCookies:cookiesArray];

NSURLSession *session = [NSURLSession initWithSessionConfiguration:configuration];