yostane
yostane

Reputation: 383

Can I update cookies in the configuration of a NSURLSession after its creation?

Can I update cookies in the configuration of a NSURLSession after the creation of the session?

I use this code to update the cookies but it doesn't seem to work.

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];

Thanks,

Upvotes: 2

Views: 1560

Answers (1)

ChrisR
ChrisR

Reputation: 1328

No you can't, you have to create the configuration before creating the session, from the Apple docs:

It is important to configure your NSURLSessionConfiguration object appropriately before using it to initialize a session object. Session objects make a copy of the configuration settings you provide and use those settings to configure the session. Once configured, the session object ignores any changes you make to the NSURLSessionConfiguration object. If you need to modify your transfer policies, you must update the session configuration object and use it to create a new NSURLSession object.

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];

Upvotes: 3

Related Questions