【问题标题】:Alamofire Bad Network Connection | SwiftAlamofire 网络连接不良 |迅速
【发布时间】:2022-01-30 05:13:52
【问题描述】:

我想实现一种方法来检查在我使用 Alamofire 4.9 执行的网络调用期间网络是否弱或断开连接 - 以下是我目前正在尝试做的事情,但我注意到如果网络它关闭它从不跳到这一行:

URLError.Code.notConnectedToInternet

为什么会发生这种情况,有没有更好的尝试方法?

//Fetch new data
guard let url = URL(string: "test.com")
else { return }
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = "value1=test1&value2=test2".data(using: .utf8)

URLSession.shared.dataTask(with: request) { [self] data, _, error in
    guard let data = data else { return }
    do {
        let decoder = JSONDecoder()
        let res = try decoder.decode([Structure].self, from: data)
    }
}
catch {
    if let err = error as? URLError, err.code  == URLError.Code.notConnectedToInternet {
        // No internet
    } else {
        print(error)
    }
}
}.resume()

【问题讨论】:

    标签: swift alamofire


    【解决方案1】:

    连接不良或完全断开会导致各种错误。 .notConnectedToInternet 只是其中之一。 Apple 没有提供一个单一的、详尽的列表,其中列出了在出现连接问题时可能会返回的错误,因此您需要进行试验,看看您能产生什么。此外,您可能会将各种错误放入“网络连接”存储桶中,例如.dnsLookupFailed.cannotConnectToHost。归根结底,区分不同类型的URLErrors 可能不值得。

    顺便说一句,如果可以的话,你应该使用 Alamofire 5,因为 Alamofire 4 不再受支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-06
      • 2016-11-13
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      • 2011-07-15
      相关资源
      最近更新 更多