天天看點

Alamofire5 設定請求逾時時間

Alamofire5為最新版本,是Swift語言開發的網絡請求庫,功能非常強大,支援鍊式文法,很優雅。

本文主要介紹了設定請求逾時時間的兩種方法:

相關參考資料:Alamofire 5 的使用 - 基本用法 Alamofire官網

方法一,通過自定義 requestModifier 實作

AF.request(strUrl,
                   method: .get,
                   parameters: paras,
                   headers: nh,
                   requestModifier: { $0.timeoutInterval = UrlSetting.K_APP_REQUEST_TIME_OUT })
            .validate()
            .validate(contentType: UrlSetting.K_APP_ACCEPTABLE_CONTENTTYPES)
            .responseJSON { response in
   
                var msg:String? = response.error?.localizedDescription ?? ""
                print("請求結果:\(response)")
                if response.error != nil {
                    print(msg)
                }
                else{
                  print("請求成功")
                }
            }
           

方法二,通過自定義 URLRequest 實作

var request = URLRequest.init(url: URL.init(string: strUrl.urlEncoded())!)
        request.httpBody = body
        request.httpMethod = "PUT"
        request.timeoutInterval = UrlSetting.K_APP_REQUEST_TIME_OUT
        request.setValue("application/json", forHTTPHeaderField: "Accept")
        request.setValue("application/json;charset=UTF-8", forHTTPHeaderField: "Content-Type")
        
        if  let userLoginToken: String = UserDefaults.standard.value(forKey: Key.userLoginToken) as? String {
            request.setValue(userLoginToken, forHTTPHeaderField: UrlSetting.K_USER_TOKEN)
        }
        
        AF.request(request)
            .validate()
            .validate(contentType: UrlSetting.K_APP_ACCEPTABLE_CONTENTTYPES)
            .responseJSON { response in
           
                var msg:String? = response.error?.localizedDescription ?? ""
                print("請求結果:\(response)")
                if response.error != nil {
                    print(msg)
                }
                else{
                    print("請求成功")
                }
            }
           

本文結束,不足之處多指正,謝謝

繼續閱讀