我遇到NSURLSession
&问题NSURLSessionConfiguration
我不确定这是否是我的代码,或者我对框架的行为方式有不正确的理解。
我面临的问题是我在会话级别设置的标头不存在于会话中创建的NSURLSessionTask
中。
这是一个小例子:
NSURLSessionConfiguration* config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.HTTPAdditionalHeaders = @{ @"TestHeader" : @"TextHeaderValue" };
NSURLSession* session = [NSURLSession sessionWithConfiguration:config];
NSURLSessionDownloadTask* task = [session downloadTaskWithURL:[NSURL URLWithString:@"http://www.google.com"]];
NSLog(@"%@",task.originalRequest.allHTTPHeaderFields.description);
NSLog(@"%@",task.currentRequest.allHTTPHeaderFields.description);
NSLog(@"%@",session.configuration.HTTPAdditionalHeaders);
上面的代码输出:
(null)
(null)
{TestHeader = TextHeaderValue}
根据我对documentation的理解,会话中创建的任何任务或请求都应该是会话中HTTPHeaders的固有内容。我的理解是否正确?如果是这样,谁能看到我做错了什么?
答案 0 :(得分:2)
根据Charles Proxy发送标题:
“TestHeader TextHeaderValue”。
这似乎是NSURLSessionConfiguration
和NSURLSession
中标题设置方式的显示问题。也许不应该假设在使用allHTTPHeaderFields
时设置了NSURLSession
属性。