Authorization header is set in NSURLSessionConfiguration
, however it is not attached to NSURLSessionDataTask
. Is this a bug in Foundation framework
?
NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration];
[configuration setHTTPAdditionalHeaders:@{@"Authorization":@"123"}];
// Initialize session with NSURLSessionConfiguration
NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
NSURLSessionDataTask *sessionTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
}];
[sessionTask resume];
I try this in Swift and it works
var sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration()
var xHTTPAdditionalHeaders: [NSObject : AnyObject] = ["X-test":"taly"]
sessionConfig.HTTPAdditionalHeaders = xHTTPAdditionalHeaders
let session = NSURLSession(configuration: sessionConfig)
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
In the NSURLSessionConfiguration document,
An NSURLSession object is designed to handle various aspects of the HTTP protocol for you. As a result, you should not modify the following headers:
Authorization
Connection
Host
WWW-Authenticate
来源:https://stackoverflow.com/questions/24751768/nsurlsessionconfiguration-httpadditionalheaders-not-set