网络请求间歇性失败,错误-1009 Internet连接似乎已脱机

时间:2019-02-10 08:43:28

标签: ios swift alamofire

我在初始视图控制器的viewDidLoad方法上调用了多个请求。有时对于某些用户,这些请求因Error Code -1009 The internet connection appears to be offline.而失败,而其他用户则没有。有时,收到错误的用户可以在一段时间后使用它而没有任何问题。这通常发生在蜂窝网络上。其他应用正在他们的手机上运行,​​而不是我们的手机。

所有这些请求都在我的Service类上使用相同的方法。首先,我有一个API枚举,然后使用Alamofire的URLRequestConvertible协议将它们转换为URLRequest。然后,我将此请求传递给Alamofire并处理响应。

func get<T:Codable>(_ api: ServiceAPI, resultType: T.Type, completion: @escaping (_ result: T?, _ error: Error?) -> ()) {
    Alamofire.request(api).validate().responseJSON { response in
      switch response.result {
      case .success(let json):
        print("\(api.path):\n\(json)")
        do {
          if let data = response.data {
            let jsonDecoder = JSONDecoder()
            let dictionary = try jsonDecoder.decode([String: T].self, from: data)
            if let result = dictionary["result"] {
              completion(result, nil)
            } else {
              completion(nil, self.resultNotFoundError)
            }
          }
        } catch {
          completion(nil, error)
        }
      case .failure(let error):
        error.trackMixPanelEvent()
        completion(nil, error)
      }
    }
  }

由于我正在创建Service类的实例并为每个请求调用get方法,因此是否有可能对该请求进行了释放?这种间歇性网络错误也可能是什么原因?

还要指出,所有Web服务请求都使用POST方法。

0 个答案:

没有答案