我嘗試過使用NSURLSession,但現在我想使用Alamofire。如何在alamofire中設置請求超時?
1
A
回答
0
在您的AppDelegate中的application(_:didFinishLaunchingWithOptions:)
方法中調用此函數。
func configureAlamofire() {
Alamofire.SessionManager.default.session.configuration.timeoutIntervalForRequest = 15 // in seconds
Alamofire.SessionManager.default.session.configuration.timeoutIntervalForResource = 15 // in seconds
}
0
let manager = Alamofire.SessionManager.default
manager.session.configuration.timeoutIntervalForRequest = 120
manager.request("yourUrl", method: .post, parameters: ["parameterKey": "value"])
.responseJSON {
response in
switch (response.result) {
case .success:
//do json stuff
break
case .failure(let error):
if error._code == NSURLErrorTimedOut {
//timeout here
}
print("\n\nAuth request failed with error:\n \(error)")
break
}
}
2
如果你想定製超時,無論是設置您的要求的值,或創建一個自定義URLSession
有自定義配置: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)")
}
}
2
這種方法對我來說很快3
let manager : SessionManager = {
let config = URLSessionConfiguration.default
config.timeoutIntervalForRequest = 15
config.timeoutIntervalForResource = 15
let mgr = Alamofire.SessionManager(configuration: config)
return mgr
}()
相關問題
- 1. 如何設置請求超時異常
- 2. 如何在另一個Alamofire請求中運行Alamofire請求?
- 3. Alamofire請求總是失敗,如果Socket.io連接「請求超時」
- 4. 如何在Alamofire 3.0中設置客戶端超時時間ios
- 5. 如何在Objective-C中爲gRPC請求設置超時?
- 6. 如何在Tornado服務器中設置請求超時?
- 7. 如何在Node.js中爲zmq請求設置超時?
- 8. AFNetworking - 如何設置請求在發生超時時重試?
- 9. 設置超時與發送請求使用請求包在nodejs
- 10. RestKit 0.27 - 設置請求超時
- 11. 爲請求方法設置超時
- 12. 從C++設置OLE請求超時
- 13. Jetty-runner.jar設置請求超時
- 14. 設置代理請求超時
- 15. 爲Android請求設置超時更新
- 16. 如何在Tornado HTTP請求上設置超時?
- 17. 如何在angular2上爲GET請求設置全局超時
- 18. 如何查看Alamofire請求?
- 19. 如何從alamofire請求
- 20. 如何在mule XML配置文件中的http:inbound-endpoint中設置請求超時?
- 21. 如何爲NSURLConnection請求設置實時超時?
- 22. 如何使用JSP/JSF設置POST請求的超時時間
- 23. react -ative如何設置網絡請求超時時間?
- 24. 如何設置IIS ARR請求超時時間?
- 25. 如何爲Alamofire POST請求正文設置UTF8編碼?
- 26. 如何爲Alamofire請求全局設置基本網址?
- 27. 在Phoenix中配置請求超時?
- 28. FSharp.Data HTTP請求 - 無法設置請求超時
- 29. Alamofire JSON請求
- 30. Alamofire POST請求