Alamofire POST 请求有进度

2023-11-24

我正在使用 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)
        }

然而,我注意到.进度块仅在发布请求结束后才被调用,而不是多次被调用来实际跟踪进度。println("输入.进度")仅被调用一次(最后)

如何使 .progress 与 Alamofire.request POST 一起使用?

另外:我的参数包括一个 base64 编码的图像字符串。我正在使用后端 Ruby on Rails 来处理图像。这个过程需要相当长的时间。


你可以做的是首先使用ParameterEncoding枚举来生成 HTTPBody 数据。然后您可以提取该数据并将其传递给 Alamofireupload方法。这是同一函数的修改版本,它在游乐场中编译,而是使用upload功能。

struct ApiLink {
    static let create_post = "/my/path/for/create/post"
}

let parameters: [String: AnyObject] = ["key": "value"] // Make sure this has your image as well

let mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: ApiLink.create_post)!)
mutableURLRequest.HTTPMethod = Method.POST.rawValue

let encodedURLRequest = ParameterEncoding.JSON.encode(mutableURLRequest, parameters: parameters).0
let data = encodedURLRequest.HTTPBody!

let progressView = UIProgressView()

Alamofire.upload(mutableURLRequest, data)
         .progress { _, totalBytesRead, totalBytesExpectedToRead in
             println("ENTER .PROGRESSS")
             println("\(totalBytesRead) of \(totalBytesExpectedToRead)")
             progressView.setProgress(Float(totalBytesRead) / Float(totalBytesExpectedToRead), animated: true)
         }
         .responseJSON { _, _, mydata, _ in
             println(mydata)
         }

正如 @mattt 最初在上面的评论中提到的那样,这肯定会有进展更新。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Alamofire POST 请求有进度 的相关文章

  • iOS 新手。预期的表达错误?

    这看起来很不寻常 因为该方法与我的 showAnswer 方法完全相同 所以我想我应该在这里问 import QuizViewController h interface QuizViewController end implementat
  • 即席分发失败

    我在一家大公司工作 正在开发一个适用于 iOS 5 的 iOS 应用程序 分发应用程序的唯一方式是通过临时部署 我拥有自己的服务器已经有一段时间了 由 o2switch 法国托管商 托管 当我开始开发时 我们使用它来部署应用程序以进行 Be
  • 使用捏合手势;如何放大用户手指实际“捏”的位置?

    我已经在我的应用程序中的 UIImageView 上实现了 UIPinchGestureRecognizer 但是无论我在图像的哪个位置捏合 它似乎都会放大到同一个位置 有谁知道我如何让它放大到用户实际 捏 的地方 请参阅下面的代码 视图控
  • Rails:has_many:通过还是has_many_and_belongs_to?

    我有一个应用程序 我想通过另一个模型将一个模型的实例链接到同一模型的另一个实例 即 Task1 gt Relationship 基本上 关系模型将具有额外的信息 关系类型 滞后 因此将其作为连接模型是理想的 然而 并没有两个模型可以加入 只
  • 在 swift 中获取用户可读的类名版本(在 objc NSStringFromClass 中就可以了)

    Swift 中是否有相当于 NSStringFromClass 的类名 可以提供用户可读的版本 我尝试将它与我创建的本机 Swift 类一起使用 但如您所见 结果似乎是编译器对类名的内部表示 println NSStringFromClas
  • 将 HTML 字符串加载到 UIWebView 中的延迟

    我在导航控制器中有两个视图控制器 第一个视图控制器有一个带有按钮的菜单 按下此按钮将移动到第二个视图控制器并将 html 字符串加载到 UIWebView 中 没有其他东西被加载到 webview 中 只是一个简单的 NSString 其中
  • 加载新的 Turbo Frame 时如何执行 JavaScript

    我在 Rails 应用程序中使用 Turbo Frames 并且在每个页面上都有
  • 未安装的应用程序的URL方案

    简单的问题 我正在开发一个将注册自己的 URL 方案的应用程序 我计划通过人们最喜欢的 QRCode 阅读器使用 QRCode 启动该应用程序 我的问题 如果我的应用程序尚未安装在他们的 iPhone iPad 上 会发生什么 他们会被引导
  • iOS 复合谓词

    我正在编写一个具有照片数据库的应用程序 每张照片都有多个与之关联的标签 并且该应用程序有一个带有大量切换的搜索页面 允许用户仅根据他们感兴趣的标签搜索照片 每个标签都存储了integerID 是因为它们对应于外部数据库的 ID 所以我尝试简
  • 使用导航控制器在 Storyboard 中呈现视图控制器 - Swift

    我目前在下面的新故事板中显示了一个 viewController var storyboard UIStoryboard UIStoryboard name AccountStoryboard bundle nil var vc Welco
  • 连接到 Apple Music

    所以我尝试使用 React Native 应用程序从 iOS 设备连接到 Apple Music 有一个 API 可以执行相同的操作 但我需要从 storekit 框架调用一个函数 提出个性化请求 苹果音乐API https develop
  • 为什么 iOS 5.0 不喜欢纯窗口应用程序?为什么它要求使用视图控制器?

    我有一个使用 Xcode 4 0 的 基于窗口的应用程序 模板创建的 iOS 应用程序 当时运行良好 并且使用的是 iOS 4 3 SDK 这是一个简单地将按钮 标签等直接放置到窗口上的应用程序 没有视图控制器 什么都没有 但现在我已经升级
  • 获取 Swift 子目录中资源的所有 URL

    我正在尝试为 iOS 应用程序的子目录中的所有资源创建 URL 数组 我似乎无法到达正确的路径 即使我不知道名称 我也希望能够检索 URL 即我不想将文件名硬编码到代码中 Below is a screen shot of the hier
  • 将用户输入转换为整数

    所以我有一个用户可以输入价格的表格 我正在尝试创建一个 before validation 来规范化数据 如果用户放置 则剪裁它 before validation do unless self price blank then self
  • 即时将图像添加到 AR 资源以进行图像识别

    ARKit1 5介绍图像识别 在代码中 您必须创建一组参考图像 如下所示 let referenceImages ARReferenceImage referenceImages inGroupNamed AR Resources bund
  • 如何使用 Rspec 来测试使用 Paperclip 的模型是否正在验证上传文件的大小?

    该模型 class Attachment lt ActiveRecord Base belongs to narrative attr accessible description user id narrative id has atta
  • iOS 11 getUserMedia 不起作用?

    苹果公司发表声明称getUserMedia将在 iOS 11 上完全正常运行 安装 iOS 11 Beta 版本 5 后 我确实收到一条消息 表明我的网站请求访问我的相机和麦克风 但似乎是这样的 video src window URL c
  • AVAudioMixerNode pan 或 AVAudioUnitSamplerstereoPan 属性无法更改 AVAudioEngine 声音输出的左/右平衡

    我有以下代码 它播放单个 MIDI 音符 但我希望能够调整平衡 平移 以便它仅从左扬声器或右扬声器或某些组合中播放 我认为更改 sampler stereoPan 或 engine mainMixerNode pan 也许可以解决问题 但它
  • 如何在 XCode5 中将部署目标更改为 5.1.1 [重复]

    这个问题在这里已经有答案了 我正在一个项目中工作 我需要支持 iOS 5 1 1 但在 部署目标 的下拉菜单中我没有 5 1 1 作为选项 我的问题是如何将 iOS 5 1 1 添加为部署目标 我将非常感谢你的帮助 如果您愿意 您可以在框中
  • 如何将 NSAppTransportSecurity 添加到 Cordova 项目

    我正在从事一个 ionic cordova 项目 该应用程序需要配置 iOS 9 版本的应用程序传输安全例外 有谁知道如何将以下配置添加到 cordova 项目配置文件中 配置 xml

随机推荐

  • 升级到 Material UI 4 - withStyles 后出现错误

    从 v3 9 x 升级到 MUI v4 0 2 后 我收到以下错误 您必须将组件传递给 connect 返回的函数 相反收到了 propTypes displayName WithStyles MyComponent options def
  • 使用 DirectX 的桌面捕获不起作用

    由于D3DPOOL SCRATCH处理速度较慢 所以我编写了桌面捕获程序以参考网上的报告 然而 结果却是一片漆黑的画面 这是控制台程序的结果还是有其他原因 include
  • OSX 10.9 上的 Pstack 进程

    在linux上为了查看给定时间的进程堆栈我们一般使用 堆栈pid gt 我想知道 osx 中的相同内容是什么 thanks sudo usr libexec stackshot i u p
  • 从 Java 文本文件中读取特定行

    有没有什么方法可以从文本文件中读取特定行 在 API 或 Apache Commons 中 就像是 String readLine File file int lineNumber 我同意它的实现很简单 但它的效率不是很高 特别是如果文件很
  • 在 lapply/ldply 的列表中使用对象名称

    在试图回答时一个问题早些时候 我遇到了一个看起来应该很简单的问题 但我无法弄清楚 如果我有一个数据框列表 df1 lt data frame a 1 3 x rnorm 3 df2 lt data frame a 1 3 x rnorm 3
  • Span 文本更改上的 MutationObserver 不会触发

    这只是一个简单的例子 而不是实际情况 MutationObserver 仍然没有触发 所以我对其工作原理的假设是错误的 JSFiddle function var editButtonVisibility function console
  • 图像上缩进的透明箭头/三角形

    我想做一个图像上的透明箭头 该三角形应在半透明块中缩进并显示背景图像 期望的输出 barShow background color 000 opacity 0 5 barShow before top 0 left 50 border so
  • 如何在 Markdown 中的文本上应用颜色

    我想使用 Markdown 来存储文本信息 但快速谷歌搜索显示 Markdown 不支持颜色 另外 Stack Overflow 不支持颜色 与 GitHub markdown 的情况相同 有没有允许彩色文本的 Markdown 风格 TL
  • TypeError:只有长度为 1 的数组可以使用 NUMPY 转换为 Python 标量

    coding utf 8 import matplotlib pyplot as plt import numpy as np import math task 2e x np linspace 0 0001 0 1 50 constant
  • .rpt设计时如何使水晶报表页面宽度变大

    我正在寻找一种调整页面宽度大小的方法 Crystal Reports 使我可以将字段放置在 rpt 文件中 到目前为止 我发现如果右键单击报告 选择 设计 打印机设置 我可以选择要打印报告的纸张尺寸 如果我选择 方向 横向 我可以增加页面的
  • 使用 prism.js 突出显示 html

    我似乎无法使用 prism js 突出显示 html 因为它删除了仅打印文本的标记 pre 标签内的以下代码仅显示为文本 我将 代码 标签的类设置为 语言标记 table class data table tr td Title td td
  • 将 foreach 与 LINQ to Entities 结合使用时是否需要 ToList

    我有一个关于 LINQ 如何与foreach通过实体框架中的可查询实体 做哪一个更好 更快 foreach var thing in myentities GetThemAll or foreach var thing in myentit
  • 重定向根 URL - IIS 7

    我的网站上安装了一些论坛http ironnoob com forums 我的网站位于 c IronNoob 我的论坛安装在 c IronNoob forums 我希望 ironnoob com 和 www ironnoob com 都进行
  • 如何在docker容器中伪造cpu架构?

    当我创建 32 位 CentOS 5 docker 映像时 我希望 cpu 架构报告为 i386 i686 安装程序在此容器检查架构中进行测试并安装 64 位二进制文 件而不是 32 位 我设置了 yum 变量并创建了 uname 包装器
  • 批处理文件中删除特定扩展名的文件

    我想递归删除批处理文件中具有特定扩展名的所有文件 我知道以下命令 del s ext 但是 这在 Windows 上也会删除具有其他扩展名的文件 例如 ext1 或 ext2 其原因似乎是此类文件的 8 3 文件名以 ext 结尾 因此扩展
  • 实体框架 EF.Functions.Like 与 string.Contains

    我正在阅读实体框架核心2 0的公告https blogs msdn microsoft com dotnet 2017 08 14 announcing entity framework core 2 0 它说他们添加了新的 Sql 函数
  • 下拉 onchange 调用 PHP 函数

    我尝试使用下面的代码从下拉菜单中调用 PHP 函数 有没有一种干净的方法可以做到这一点 code section section
  • AngularJs 单元测试 - 嘲笑承诺不执行“然后”

    我们正在对控制器进行单元测试 我们已经成功模拟了对 REST 服务层的调用 并验证了它确实是使用给定的数据进行调用的 然而现在我们想在我们的控制器中测试then承诺改变location path 控制器 function app contr
  • Python字典迭代器性能

    在 Python 中使用字典时 这一页表示迭代字典元素的时间复杂度是O n where n是字典的最大尺寸 但是 我认为没有一种明显的方法可以迭代哈希表的元素 我可以假设性能良好吗dict iteritems 当迭代哈希表的元素时 没有太多
  • Alamofire POST 请求有进度

    我正在使用 Alamofire 执行 POST 请求 由于此 POST 请求可能需要一段时间 并且我想跟踪进度并将其显示为 ProgressView Alamofire request POST ApiLink create post pa