2

我可以在创建会话后更新 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];

谢谢,

4

1 回答 1

2

不,你不能,你必须在创建会话之前创建配置,来自 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];
于 2014-11-05T13:26:14.633 回答