Alamofire5 设置请求超时时间

Posted 追夢秋陽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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("请求成功")
                
            

本文结束,不足之处多指正,谢谢

以上是关于Alamofire5 设置请求超时时间的主要内容,如果未能解决你的问题,请参考以下文章

如何在 alamofire 5.0.2 版本中设置自定义超时

h5设置请求超时时间

Alamofire 5 调整和重试请求

httpclient: 设置请求的超时时间,连接超时时间等

Nginx的超时timeout配置详解

如何使用Alamofire Router来组织API调用?(swift Alamofire5)