I tried it using NSURLSession but now I want to use Alamofire.
This approach worked for me on swift 3
let manager : SessionManager = {
let config = URLSessionConfiguration.default
config.timeoutIntervalForRequest = 15
config.timeoutIntervalForResource = 15
let mgr = Alamofire.SessionManager(configuration: config)
return mgr
}()
Got it from https://github.com/Alamofire/Alamofire#session-manager
If you want a custom timeout, either set the value on your requests, or create a custom URLSession
with a custom configuration: alamofire documentation
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 10 // seconds
configuration.timeoutIntervalForResource = 10
let sessionManager = Alamofire.SessionManager(configuration: configuration)
//OR
var request = URLRequest(url: URL(string: "myApi.com/Api/login")!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 20)
request.httpMethod = "GET"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
Alamofire.request("https://httpbin.org/get").responseJSON { response in
print(response)
if let json = response.result.value {
print("JSON: \(json)")
}
}
Call this function in application(_:didFinishLaunchingWithOptions:)
method in your AppDelegate.
func configureAlamofire() {
Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 15 // in seconds
Alamofire.SessionManager.default.session.configuration.timeoutIntervalForResource = 15 // in seconds
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With