Alamofire:取消(暂停)文件上传
Posted
技术标签:
【中文标题】Alamofire:取消(暂停)文件上传【英文标题】:Alamofire: Cancel (suspend) file upload 【发布时间】:2016-10-05 20:01:00 【问题描述】:我正在使用 Alamofire 上传文件:
Alamofire.Manager.upload(
APIManager.Router.UploadFileRoute,
multipartFormData : multipartFormData in
multipartFormData.appendBodyPart(data: audioData, name: "file", fileName: "file.m4a", mimeType: "audio/m4a")
, encodingCompletion: result in
switch result
case .Success(let request, _, _):
break
case .Failure(let encodingError):
break
)
文件上传开始后如何取消(暂停)?
documentation 建议我在 Request 对象上调用 suspend(),但我如何使用上面的文件上传 API 获取 Alamofire.Request 对象?此 API 不返回任何 Alamofire.Request 对象。
【问题讨论】:
【参考方案1】:原来请求只有在编码后才准备好(见内联 cmets)
Alamofire.Manager.upload(
APIManager.Router.UploadFileRoute,
multipartFormData : multipartFormData in
multipartFormData.appendBodyPart(data: audioData, name: "file", fileName: "file.m4a", mimeType: "audio/m4a")
, encodingCompletion: result in
switch result
case .Success(let request, _, _):
// Reference the request here (will get here immediately)
request.responseJSON response in
// This closure executes only after request succeeds or fails
break
case .Failure(let encodingError):
break
)
【讨论】:
以上是关于Alamofire:取消(暂停)文件上传的主要内容,如果未能解决你的问题,请参考以下文章