Alamofire 网络错误异常处理

Posted

技术标签:

【中文标题】Alamofire 网络错误异常处理【英文标题】:Alamofire Network error exceptions handling 【发布时间】:2020-07-28 19:50:54 【问题描述】:

我目前正在为 ios 开发一个应用程序。我想要实现的大部分功能我已经完成了,但我确实需要一个特别的功能 - 网络错误处理。

例如:一个用户试图在我的应用程序中刷新他的数据。与其让我的应用程序崩溃或根本不做任何事情,我更希望能够捕获、识别该异常,然后使用 AlertDialogs 在屏幕上显示相应的消息。例如:

网络错误 - 标题; 无法访问主机,请检查您的网络连接并重试 - 消息; 确定 - 按钮;

我能够在我的 android 应用程序中使用它,它非常有用,但是,我对 Swift 和 iOS 开发还很陌生,所以,请在这里帮助我并指出正确的方向。

我目前正在使用最新的 Alamofire 发送 HTTP 请求,这是我在应用程序中实现的 HTTP 请求示例。

func loadProfile() 
   let url = Constants.profileURL
   let headers: HTTPHeaders = ["Cookie": "username; password"]
   AF.request(url, method: .post, headers: headers).response response in
      if let data = response.data, let dataString = String(data: data, encoding: .utf8) 
         if  dataString.contains(Constants.loginSuccess) 
             //Do something
         
      
   

【问题讨论】:

那么,您是在寻找网络错误或在 ios 中显示类似于 android 的警报的方法吗? @Frankenstein 我正在寻找网络错误,我知道如何显示警报对话框 【参考方案1】:

Alamofire 的DataResponse(以及所有响应类型)包含序列化的Result。您可以使用该值来检查序列化以及一般请求是成功还是失败。然后,您可以将 result 值传递给完成处理程序,以根据需要进行处理。

【讨论】:

以上是关于Alamofire 网络错误异常处理的主要内容,如果未能解决你的问题,请参考以下文章

Python学习笔记八(异常处理和网络编程)

Python网络编程day-1[异常处理,socket]

Python20期课堂总结-20180127day8-异常处理与网络编程

异常处理

day8 (异常处理和网络编程)

Java异常处理