我需要将自定义用户代理字符串设置为NSURLSession的sharedSession.即每当我打电话时[NSURLSession sharedSession],它将默认包含我的自定义配置,我不需要每次都设置它.
我可以将配置设置为session,
NSURLSession * session = [NSURLSession sharedSession];
NSString * userAgent = @"My String";
session.configuration.HTTPAdditionalHeaders = @{@"User-Agent": userAgent};
Run Code Online (Sandbox Code Playgroud)
但是我找不到如何将配置设置为sharedSession可以在代码中随时使用的配置.
Dan*_*sko 14
那是因为你无法修改sharedSession.想象一下,好像sharedSession是iOS设备sharedSession,并被所有其他应用程序和框架使用.有意义的是它不可配置吗?有关它的文档说明:
共享会话使用当前设置的全局NSURLCache,NSHTTPCookieStorage和NSURLCredentialStorage对象,并基于默认配置.
您要做的是定义自定义配置,这意味着您将需要自己的会话对象及其自己的配置.这就是为什么有一个特定的构造函数给你你需要的东西:
+ (NSURLSession *)sessionWithConfiguration:(NSURLSessionConfiguration *)configuration
delegate:(id<NSURLSessionDelegate>)delegate
delegateQueue:(NSOperationQueue *)queue
Run Code Online (Sandbox Code Playgroud)
为简洁起见,您可以使用[NSURLSessionConfiguration defaultSessionConfiguration]创建基本配置,然后在那里设置其他标头.
当然,您将负责保留会话等