1

我遇到NSURLSession & NSURLSessionConfiguration問題,我不確定它是我的代碼還是我對框架的行爲有不正確的理解。NSURLSession&NSURLSessionConfig - Discarding Config Headers

我面臨的問題是,我在會話級別設置的標頭不存在於會話創建的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創建的任何任務或請求會話。我的理解是否正確?如果是這樣,任何人都可以看到我做錯了什麼?

回答

2

根據Charles Proxy發送標題:
「TestHeader TextHeaderValue」。

這似乎是在NSURLSessionConfigurationNSURLSession中設置標題的方式的顯示問題。當使用NSURLSession時,可能不應該認爲allHTTPHeaderFields屬性已設置。

+0

良好的通話。我檢查了代理服務器中的頭文件,它也在那裏。 – Freddy 2014-10-17 20:34:09