ios - NSURLSession 和 NSURLSessionConfig - 丢弃配置 header

标签 ios nsurlsession nsurlsessiondownloadtask nsurlsessionconfiguration

我在使用 NSURLSessionNSURLSessionConfiguration 时遇到问题,我不确定这是我的代码还是我对框架的行为有错误的理解。

我面临的问题是我在 session 级别设置的 header 不存在于从 session 创建的 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 的理解,从 session 创建的任何任务或请求都应该从 session 中继承 HTTPHeaders。我的理解正确吗?如果是这样,谁能看出我做错了什么?

最佳答案

正在根据 Charles Proxy 发送 header :
“TestHeader TextHeaderValue”。

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

关于ios - NSURLSession 和 NSURLSessionConfig - 丢弃配置 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26431208/

相关文章:

iphone - 如何在 iOS 中为应用程序图标制作动画?

objective-c - 在 UIStoryboard 中分配初始化对象

basic-authentication - NSURLSession、HTTP 基本身份验证和自签名证书

ios - 类数组对象值在json序列化后总是返回nil

ios - AF网络 : Do I need to delete downloaded file myself?

ios - PFQueryTableViewController 分页不适用于 heightForRowAtIndexPath

ios - 加载uibweview时收到内存警告

ios - 上传 NSURLSession 在 ios8 中共享扩展无效,错误 NSURLErrorDomain Code=-995

ios - 为什么我的 NSURLSessionDownloadTask 下载无法到达我的客户端?