1

我遇到了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}

根据我对文档的理解,从会话创建的任何任务或请求都应该包含会话中的 HTTPHeaders。我的理解正确吗?如果是这样,谁能看到我做错了什么?

4

1 回答 1

2

根据 Charles Proxy:
“TestHeader TextHeaderValue”发送标头。

这似乎是标题在NSURLSessionConfiguration和中设置方式的显示问题NSURLSession。也许人们不应该假设allHTTPHeaderFields在使用时设置了属性NSURLSession

于 2014-10-17T19:54:48.143 回答