Updated @duemonk's code for Swift 3:
do {
var request = URLRequest(url: URL(string: "https://www.example.com/api/v1")!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)
let config = URLSessionConfiguration.default
let session = URLSession(configuration: config)
let task = session.dataTask(with: request, completionHandler: {(data, response, error) in
if error != nil {
print(error!.localizedDescription)
}
else {
print(response)
}
})
task.resume()
}
catch {
// handle the error
}