0
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
}
}
ここでは、デフォルトのセッション動作を利用していますが、タイムアウトまたはネットワーク接続が失われてもエラーは発生しません。Alamofireはマルチパートアップロードでネットワークの損失/タイムアウトエラーを発生しません。
私は要求を開始した後にインターネット接続を切断していますが、エラーはありません。