ios - 如何使用AFNetworking 2.0将所有网络请求限制为Wi-Fi连接?

标签 ios nsurlrequest afnetworking-2 nsurlsession

我有一个很奇怪的问题。我想知道是否可以使用AFNetworking 2.0阻止任何请求(当前和将来)。我的应用程序需要执行以下操作:如果用户未通过wifi连接->阻止该应用程序可能有的任何请求。
我只找到了一种阻止所有当前请求的方法:

[self.manager.operationQueue cancelAllOperations];

任何帮助都值得欢迎和赞赏

最佳答案

从iOS 6开始, NSMutableURLRequest 允许您通过调用setAllowsCellularAccess:来指定是否可以通过蜂窝连接进行请求。这由Apple document解释。您将需要为每个请求设置此设置。

使用AFNetworking,连接到AFHTTPRequestOperationManager的最干净方法是使用您自己的requestSerializer subclass并覆盖-requestWithMethod:URLString:parameters:error:来调用super并使用setAllowsCellularAccess:修改请求。

如果您还在iOS 7代码路径中使用NSURLSession,则可以使用 NSURLSessionConfiguration ,其allowsCellularAccess属性设置为NO。每个 session 仅设置一次。

关于ios - 如何使用AFNetworking 2.0将所有网络请求限制为Wi-Fi连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21261186/

相关文章:

ios - 在 Cocos2D 中切割多边形的异形孔

ios - 来自苹果网站的食物追踪应用程序

ruby-on-rails - 使用 NSURL 使用 JSON 在 Rails 服务器上创建新帖子时重复参数

iphone - 如何处理 NSURLRequest HTTP 错误 303?

ios - 在 RxSwift-MVVM 架构中,触发弹出窗口和指示器等 UI 元素的最佳方式是什么?

iphone - iOS自定义表格 View 单元格在编辑模式下调整大小

iphone - 在 iPhone 中使用 NSURLRequest 下载文件的剩余时间

afnetworking-2 - AFHTTPRequestOperationManager 属性是否在共享客户端中?

ios - AFNetworking 完成 block 等到完成

ios - AF 网络 2.0 : credentials not sent to authentication within 30 seconds of previous request