【发布时间】:2015-03-31 19:29:27
【问题描述】:
我正在使用 Alamofire 执行 POST 请求。 由于此 POST 请求可能需要一段时间,我想跟踪进度并将其显示为 ProgressView。
Alamofire.request(.POST, ApiLink.create_post, parameters: parameters, encoding: .JSON)
.progress { (bytesRead, totalBytesRead, totalBytesExpectedToRead) -> Void in
println("ENTER .PROGRESSS")
println("\(totalBytesRead) of \(totalBytesExpectedToRead)")
self.progressView.setProgress(Float(totalBytesRead) / Float(totalBytesExpectedToRead), animated: true)
}
.responseJSON { (_, _, mydata, _) in
println(mydata)
}
但是,我注意到 .progress 块 仅在发布请求结束后才被调用,而不是被多次调用以实际跟踪进度。 println("ENTER .PROGRESSS") 只被调用一次(在最后)
如何使 .progress 与 Alamofire.request POST 一起使用?
另外:我的参数包括一个 base64 编码的图像字符串。我正在使用后端 Ruby on Rails 来处理图像。这个过程需要相当长的时间。
【问题讨论】:
-
如果您返回的只是 JSON,很可能是整个有效负载都同时返回了......究竟打印了什么?
-
哦,是的,在它返回后,我确实收到了一个简单的 JSON 请求。问题是我的参数包括一个 base64 编码的图像。我正在使用后端 Rails 来处理上传的图像,这个过程需要一些时间。
-
除非你在做
upload,否则报告的进度就是下载进度。 -
您能告诉我进行 .upload(传递 NSData 图像)还是使用 base64 编码的图像字符串进行简单的 .POST 请求之间的区别?
标签: ios ruby-on-rails xcode swift alamofire