Skip to content

Instantly share code, notes, and snippets.

@maximbilan
Created July 2, 2016 18:52
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maximbilan/444db1e05babf5b08abae220102fdb8a to your computer and use it in GitHub Desktop.
Save maximbilan/444db1e05babf5b08abae220102fdb8a to your computer and use it in GitHub Desktop.
HTTP Basic Authentication using NSURLSession
let login = "test"
let password = "12345"
let url = NSURL(string: "http://test.com/api/v1/example.json")
let request = NSMutableURLRequest(URL: url!)
let config = NSURLSessionConfiguration.defaultSessionConfiguration()
let userPasswordString = "\(login):\(password)"
let userPasswordData = userPasswordString.dataUsingEncoding(NSUTF8StringEncoding)
let base64EncodedCredential = userPasswordData!.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
let authString = "Basic \(base64EncodedCredential)"
config.HTTPAdditionalHeaders = ["Authorization" : authString]
let session = NSURLSession(configuration: config)
let task = session.dataTaskWithRequest(request) { (data, response, error) -> Void in
}
task.resume()
@ralbertini
Copy link

Updating syntax

        let password = "12345"
        
        let url = NSURL(string: "http://test.com/api/v1/example.json")
        let request = NSMutableURLRequest(url: url! as URL)
        
        let config = URLSessionConfiguration.default
        let userPasswordString = "\(login):\(password)"
        let userPasswordData = userPasswordString.data(using: String.Encoding.utf8)
        let base64EncodedCredential = userPasswordData!.base64EncodedString()
        let authString = "Basic \(base64EncodedCredential)"
        config.httpAdditionalHeaders = ["Authorization" : authString]
        let session = URLSession(configuration: config)
        let task = session.dataTask(with: request as URLRequest) { (data, response, error) -> Void in
        }
        task.resume()

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment