代码之家  ›  专栏  ›  技术社区  ›  SleepNot

网络请求间歇性失败,出现错误-1009 internet连接似乎处于脱机状态

  •  0
  • SleepNot  · 技术社区  · 6 年前

    Error Code -1009 The internet connection appears to be offline. 因为有些用户和其他人没有它。有时,获得错误的用户可以在某个时间后使用它,而不会出现问题。这通常发生在蜂窝网络上。其他的应用程序在他们的手机上运行,而不是我们的。

    所有这些请求都在我的服务类上使用相同的方法。首先,我有一个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)
          }
        }
      }
    

    因为我正在创建服务类的实例并为每个请求调用get方法,所以请求是否可能被释放?造成这种间歇性网络错误的原因还有哪些?

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

    0 回复  |  直到 6 年前