根据行业惯例,我应该在进行API调用之前或在Alamofire的API调用期间检查互联网可访问性

时间:2017-06-21 07:28:32

标签: ios networking alamofire

我刚刚开始通过Alamofire进行网络连接,而且在网络方面我是新手

我正在Alamofire Api电话中进行回复验证, 那么按行业惯例是否更好在api请求之前检查互联网可达性或通过alamofire收到的错误代码处理它?<​​/ strong>

我已经读过在拨打互联网电话之前检查互联网连接会导致应用程序开销

{
   let manager = Alamofire.SessionManager.default
        manager.session.configuration.timeoutIntervalForRequest = 60      
        manager.request("http://api.androidhive.info/contacts/")
          .validate()
          .responseJSON {
            response in
            switch (response.result) {
            case .success:
               //  code

                }

            case .failure(let error):
                if error._code == NSURLErrorTimedOut {
                    print("Request call timed Out !!")
                    self.displayText?.text = "Request call timed Out !!"

                } else if error._code == -1009{
                    print(" You Sir are not Connected to the Internet !!")
                    self.displayText?.text = "You Sir are not Connected to the Internet !!"

                } else if error._code == -1003 {
                    print(" \t bruh, \n Atleast provide a Valid URL ")
                    self.displayText?.text = "bruh,Atleast provide a Valid URL "
                }
                else {
                    print("Meh, Some Kind of error with errorCode: \(error._code) !!")
                    self.displayText?.text = "Meh, Some Kind of error with errorCode: \(error._code) !!"
               }

            }

        }

3 个答案:

答案 0 :(得分:0)

If Internet is available {
//Make rest calls.
}else{
// Return cached response.
}

它取决于你,首先检查互联网节省计算资源并请求创建和api呼叫。

如果有,则还提供返回缓存数据的选项。

答案 1 :(得分:0)

实际上,这取决于您和您的产品特定要求。然而,当用户试图在不可用的情况下到达互联网时,向用户显示某种提示是一种很好的做法,而不显示任何加载指示器并让他等待。我的建议是在进行任何呼叫之前不检查互联网可达性,但通过Alamofire的NetworkReachabilityManager类听取网络可达性变化并对您的UI进行适当的更改(例如,当互联网消失时禁用与网络相关的按钮等)。

答案 2 :(得分:0)

不,您不应在拨打电话前检查互联网连接。 Apple专门建议不要这样做。只有在您希望在连接重新联机时自动重试请求时,才能在请求失败后使用可达性。