问题标签 [afnetworking-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - NSURLSessionTask 的 AFNetworking 1.x 到 3.x 迁移?
我有一个旧项目无法在 iOS 9 中运行。我已阅读有关 AFNetworking 的官方文档并完成了大部分迁移。
网络管理器:
早期版本:
转换后的响应:(更新了给出错误的评论)
ios - 快速访问 IP 地址的 AFNetworking 可访问性 - 始终匹配一般可访问性?
我需要一些帮助来理解为什么我会看到以下内容。
AFNetworking 3.0.4
在 iOS9.x 上
如果我抓住可达性管理器
然后添加一个 setReachabilityStatusChangeBlock 然后我得到我所期望的。
- 飞行模式:
NotReachable
- WiFi 关闭:
ReachableViaWWAN
- WiFi 开启:
ReachableViaWiFi
所以 - 一般情况下都按预期工作。
但我想更准确一点——我们知道我们正在与之交谈的 IP 地址,所以我想managerForAddress
改用它。这是我从网上收集到的代码(大多数示例都是针对 obj-c 而不是 swift) - 在下面 - ip 是地址的字符串(点四边形形式):
然后我可以向这个管理器添加一个 setReachabilityStatusChangeBlock 并开始监控。
现在 - 我作为 IP 发送的内容无关紧要 - 一个空字符串,一个 443 正在侦听的有效 IP 地址,一个 443 未侦听的有效 IP 地址,一个无效的 IP 地址 - 结果与 sharedManager 的结果完全匹配- 如果我使用 wifi - 那么它是ReachableViaWiFi
,如果我只使用 4G,那么它是ReachableViaWWAN
,如果我处于飞行模式它是NotReachable
。
所以 - 要么我完全误解了如何managerForAddress
使用,要么我有一个代码错误:) 在任何一种情况下,我都很想听听我误解/错了什么。
ios - 如何使用 AFNetworking 3.0 在后台下载大文件并在会话完成所有任务时显示本地通知
我正在尝试使用 AFNetworking 3.0 在我的应用程序中下载大型视频文件。我找不到任何关于如何使用 AFNetworking 在后台下载文件的具体文档。
我知道 AFNetworking 使用AFURLSessionManager和AFHTTPSessionManager,它们本身实现了NSURLSession的所有代表。
到目前为止我所做的是,创建了一个backgroundSessionConfugaration并开始使用它下载一个文件。
下载开始时,我将应用程序置于后台。到目前为止,我发现应用程序在后台运行了 20 分钟,并且下载成功。但是appDelegate 中的application:handleEventsForBackgroundURLSession没有被调用,所以我的setDidFinishEventsForBackgroundURLSessionBlock也没有被调用。
我只想在调用setDidFinishEventsForBackgroundURLSessionBlock时显示通知。
当我使用它初始化管理器时。(而不是backgroundSessionConfiguration)
仍然应用程序能够在后台 20 分钟后下载整个文件。
我的问题是为什么应用程序运行到 20 分钟并完成下载。理想情况下,iOS 应该在 10 分钟后终止应用程序。还有为什么application:handleEventsForBackgroundURLSession在会话完成后没有被调用。
我已经提到了这个AFNetworking 2.0 and background transfer,但它似乎对我不起作用。
功能中的后台模式打开或关闭不会影响我的应用程序中的任何内容。
请帮助我或建议我在这里做错了什么。
我在这里上传了示例代码。 https://www.dropbox.com/s/umwicuta2qzd3k1/RSNetworkKitExample.zip?dl=0
==================================================== ==
==================================================== ==
==================================================== ==
objective-c - AFNetworking 1.x 到 3.x 迁移 - 获取下载进度?
我需要下载带有进度条的图像。这就是我在 AFNetworking 1.x 中所做的,它不适用于 AFNetworking 3.x。
最后,这是我能想到的,但并不完整。我不知道如何在代码块中使用进度。
ios - 使用 AFNetworking 3.0 在 URL 正文中发送 JSON 数据
我想将URL正文中的JSON 数据从我的 IOS 应用程序发送到服务器。我搜索了很多 SO 问题,但找不到我想要的。如果有人知道如何使用 AFNetworking,请告诉我。谢谢这是我的代码截断,它发送参数
我得到了错误。我想在 URL Body 中传递这样的 JSON 数据
ios - AFURLSessionManager 中的 NSURLSessionDelegate 和 NSURLSessionTaskDelegate 有所不同
杂注标记 - NSURLSessionDelegate
杂注标记 - NSURLSessionTaskDelegate
****在URLSession:didReceiveChallenge:completionHandler中,创建凭据后会检查凭据是否为 nil,然后设置处置值,但在 URLSession:task:didReceiveChallenge:completionHandler中,创建凭据后,它没有t检查,它直接设置处置值?****
xcode - Swift AFNetworking dataTaskWithRequest 覆盖问题
我在 Swift 中从 AFNetworking 2.5 迁移到 3.0,并且遇到了 dataTaskWithRequest 方法的问题。该方法在一个具有 AFHTTPSessionManager 超类的类中。我从 XCode 得到的错误是“方法不会覆盖其超类中的任何方法”。
在 SessionManager 类中实例化 dataTaskWithRequest 方法的正确方法是什么?
其他 StackOverflow 帖子建议删除“覆盖”,但是当我这样做时,我得到了错误:
“方法 'dataTaskWithRequest( :completionHandler:)' 与 Objective-C 选择器 'dataTaskWithRequest:completionHandler:' 与超类 'AFURLSessionManager' 中具有相同 Objective-C 选择器的方法 'dataTaskWithRequest(:completionHandler:)' 冲突”
代码:
ios - AFNetworking:已创建 Cache.db 但缓存控制→服务器响应中的无缓存
在我的 iOS 应用程序中,我使用AFNetworking
库向服务器发送 POST 请求。服务器响应标头包含cache-control → no-cache
. 在我的自定义AFHTTPSessionManager
子类中,我没有明确设置NSURLRequestCachePolicy
,所以我认为使用了默认值NSURLRequestUseProtocolCachePolicy
。苹果文档NSURLRequestUseProtocolCachePolicy
说:
指定协议实现中定义的缓存逻辑(如果有)用于特定的 URL 加载请求。这是 URL 加载请求的默认策略。该政策将在下面的讨论中进一步描述。
就我而言,缓存逻辑是cache-control → no-cache
如此我不明白为什么我将Cache.db
存储在我的应用程序的 iOS 模拟器 Library Caches 文件夹中。
任何人都可以帮助我理解吗?
objective-c - AFNetworking 3.0 如何上传带有附加数据的文件?
您如何使用 AFNetworking 3.0实现从磁盘上传文件以及附加信息(在我的情况下caption
为 & )以利用新的后台会话上传?channel_id
uploadTaskWithRequest:fromFile:progress:completionHandler
如果它适用于 AFNetworking 和后台文件上传,我愿意接受替代解决方案。
这是我尝试过的服务器响应 400 错误请求或 500 内部处理错误(在 cURL 中进行多部分表单发布):