如何使用 AFNetworking 2 批量请求?

2024-02-07

因此,我正在使用 AFNetworking 2.0 重写 iOS 7 的应用程序,但遇到了一次发送一批请求并跟踪其进度的问题。在旧的 AFNetworking 中有enqueueBatchOfHTTPRequestOperations:progressBlock:completionBlock:方法上AFHTTPClient,这显然已经被重构了,我对如何将多个请求排队有点困惑。

我创建了一个子类AFHTTPSessionManager我正在使用POST:... and GET:...与服务器通信的方法。但我在代码和/或文档中找不到任何东西可以像旧的那样一次将多个请求排入队列AFHTTPClient.

我唯一能找到的是无证的batchOfRequestOperations:progressBlock:completionBlock:方法上AFURLConnectionOperation,但这看起来像是 iOS 6 的做法。

显然我在新版本中遗漏了一些东西NSURLSession我应该用它来批量请求或查看新的 AFNetworking 功能。希望有人可以帮助我走上正确的道路!

tl;dr:我怎样才能用我的设备发送一批请求AFHTTPSessionManager子类?


感谢 Sendoa 提供的链接Mattt 解释的 GitHub 问题 https://github.com/AFNetworking/AFNetworking/issues/1504为什么这个功能不再起作用了。有一个明确的原因可以解释为什么新的系统不可能做到这一点NSURLSession结构;任务不是操作,因此使用依赖项或批量操作的旧方法将不起作用。

我已经使用创建了这个解决方案dispatch_group这使得可以使用批量请求NSURLSession,这是(伪)代码:

// Create a dispatch group
dispatch_group_t group = dispatch_group_create();

for (int i = 0; i < 10; i++) {
    // Enter the group for each request we create
    dispatch_group_enter(group);

    // Fire the request
    [self GET:@"endpoint.json"
       parameters:nil
          success:^(NSURLSessionDataTask *task, id responseObject) {
                  // Leave the group as soon as the request succeeded
                  dispatch_group_leave(group);
          }
      failure:^(NSURLSessionDataTask *task, NSError *error) {
                  // Leave the group as soon as the request failed
                  dispatch_group_leave(group);
              }];
}

// Here we wait for all the requests to finish
dispatch_group_notify(group, dispatch_get_main_queue(), ^{
    // Do whatever you need to do when all requests are finished
});

我想写一些东西,让这件事更容易做到,并与 Matt 讨论这是否可以合并到 AFNetworking 中(如果实现得很好)。在我看来,对图书馆本身做这样的事情会很棒。但我必须检查一下我什么时候有空闲时间。

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

如何使用 AFNetworking 2 批量请求? 的相关文章

随机推荐

  • Swift UISearchController 在核心数据项目中连接,应用程序运行,但搜索未更新

    过去几天我一直在努力在 Swift 项目中创建一个过滤器TableViewController使用核心数据 我终于发现我需要使用UISearchController 创建一个NSPredicate为了searchController sea
  • BeautifulSoup .children 或 .content 标签之间没有空格

    我希望标签的所有子标签之间没有空格 但美丽的汤 contents and children还返回标签之间的空白 from bs4 import BeautifulSoup html div span 1 span a href 2 html
  • 使用 Email::MIME 和多部分/与子部分混合来解析电子邮件

    我是一个 Perl 新手 一直在使用 Email MIME 来弄清楚如何正确解析多部分的电子邮件 我刚刚确定了我当前的努力无法正确读取的另一种组合 Content Type multipart mixed boundary 18119086
  • Android Gradle 任务 Google Appengine

    我正在尝试为我的 android 应用程序编写一个 gradle 任务 该任务启动 google appengine 开发人员服务器 运行测试 然后关闭服务器 到目前为止我尝试过的看起来像这样 task runAppEngine depen
  • ecmascript 制作中的混乱

    我最近对 ecma262 规范的制作感到困惑 有些作品是基于我的假设 也可以是其他作品 例如 陈述 陈述可以是一个Block它也可以是一个如果语句 我的困惑始于看起来像这样的算法 A 令 stmtCompletion 为评估第一个的结果陈述
  • project.build.finalName 的值是多少?

    The Maven文档 http docs codehaus org display MAVENUSER MavenPropertiesGuide谈论一个名为project build finalName 但我找不到基于其他值设置的值的定义
  • JavaScript:闭包中的自动 getter 和 setter 无需 eval?

    Note 关于 JavaScript 中的 getter 和 setter 有很多问题 请参阅Javascript Getter 和 Setter https stackoverflow com questions 11134597 jav
  • Reactive Spring 不支持 ServerHttpRequest 作为 REST 端点测试中的参数?

    这个问题非常类似于this one https stackoverflow com questions 40361298 reactive spring does not support httpservletrequest as para
  • 解决 Pouch Couch DB

    我正在开发一个离线工作的原型网站 该网站利用 Pouch DB 以便在上线时同步回服务器上的 CouchDB The Pouch DB 冲突指南 http pouchdb com guides conflicts html says 要解决
  • LogicException:Symfony\Bundle\SwiftmailerBundle\DataCollector\MessageDataCollector 中缺少默认数据

    在 Symfony 2 5 5 和 Swiftmailer 5 3 0 中出现此异常 我正在关注食谱示例 http symfony com doc current cookbook email testing html确切地 调用时抛出错误
  • 位置粘性在 IE 或 Safari 中不起作用

    我正在用 CSS 创建一张卡片 它在 Chrome 中工作得很好 但在 IE Safari 浏览器中不起作用 nb position sticky width 280px height 450px margin 0 auto overflo
  • GIT GUI 无法访问欢迎屏幕

    I am trying to work on a new repository in my GIT GUI 但是当我打开 GIT GUI 时 它会直接带我到第二页并打开一些以前的存储库 附上截图 我如何切换我的项目 如何获得 Git GUI
  • Xcode Base 国际化不起作用

    我正在尝试本地化我的应用程序 我注意到 如果我添加一种语言 每个本地化文件都会增加一倍 这样就不可能维护代码或故事板 所以我了解到我需要基地国际化 问题是 当我在 xcode 项目设置中选择该复选框时 它会显示一个没有的窗口没有什么可选择的
  • 获取深度多维数组的所有子元素

    我有这样的数组 array array id gt 1 children gt array array id gt 2 parent id gt 1 array id gt 3 parent id gt 1 children gt arra
  • 省略某些值时如何创建桑基图

    我需要创建一个桑基图R with plotly超过3年 我的group列应该是节点 1 worst 2 bad 3 good and 4 best 但是在 2019 年和 2020 年我有 需要一个额外的节点5 not available
  • 将 master 分支移动到另一个分支并启动新的 master

    我一直在使用 master 分支进行开发 并希望将其清除为只有发布提交 以及它的用途 如何将所有内容从 master 复制到开发分支然后重新启动 master 从master分支创建开发分支并删除master分支 并重新创建它 以防万一您不
  • 多个视图的单一视图控制器

    我正在尝试制作一个具有多个视图但只有一个视图控制器的注册表单 进入下一个视图后 我将输入写入一个结构 该结构稍后将发送到服务器 我面临的问题是 进入新视图时 VC 会重新初始化 因此用户结构也会重新初始化 有什么办法可以避免拥有多个 Vie
  • 使用MFC将文件路径转换为URL

    我见过类似的问题 例如用 C 对 URL 进行编码 解码 https stackoverflow com q 154536 2287576 但是 对我来说 CString strURL DWORD dwSize MAX PATH if In
  • 使用C程序的随机数数组

    我是 C 程序新手 我需要创建 100 个 50 到 70 之间的随机数 并将它们存储在 double 数组中 我该如何开始 创建一个数组 int my array 100 为随机数生成器播种 srand 0 循环遍历你的数组并填充它 in
  • 如何使用 AFNetworking 2 批量请求?

    因此 我正在使用 AFNetworking 2 0 重写 iOS 7 的应用程序 但遇到了一次发送一批请求并跟踪其进度的问题 在旧的 AFNetworking 中有enqueueBatchOfHTTPRequestOperations pr