【问题标题】:Alamofire not generating network lost/timeout error in multipart uploadAlamofire 在分段上传中未生成网络丢失/超时错误
【发布时间】:2017-12-02 13:56:54
【问题描述】:
    let configuration = URLSessionConfiguration.default
    configuration.timeoutIntervalForRequest = 15.0
    configuration.timeoutIntervalForResource = 15.0
    self.alamofireManager = Alamofire.SessionManager(configuration: configuration)


self.alamofireManager.upload(multipartFormData: { (multipartFormData) in
        multipartFormData.append(UIImageJPEGRepresentation(newImage, 1)!, withName: "file", fileName: "image.jpeg", mimeType: "image/jpeg")
        if let parameters = params{
            for (key, value) in parameters {
                multipartFormData.append(value.data(using: String.Encoding.utf8.rawValue)!, withName: key)
            }
        }
    }, to:apiURL, method: .post, headers: authHeader)
    { (result) in
        switch result {
        case .success(let upload, _, _):
            upload.uploadProgress(closure: { (progress) in
                DDLogInfo("Image Upload Progress : \(progress)")
            })
            upload.responseJSON { response in
                //print response.result
            }
            break
        case .failure(let error):
            if error._code == NSURLErrorTimedOut || error._code == NSURLErrorNetworkConnectionLost {
                print("Time Out/Connection Lost Error")
            }
            DDLogInfo("Error :\(error.localizedDescription)")
            break
        }
    }

这里我使用默认会话行为,但仍然没有收到任何超时或网络连接丢失的错误。

我在开始请求后断开互联网连接但没有错误。

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

    就像我在 GitHub 上回复的那样,这是由于您对尾随闭包中的 result 感到困惑。这是多部分编码的结果,而不是网络请求。要获取网络请求状态,您需要检查您在 upload 上使用的 responseJSON

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-02
      • 2016-02-22
      • 2019-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      相关资源
      最近更新 更多