gpt4 book ai didi

ios - AFHTTPSessionManager 便捷方法(GET、POST、PUT 等)和后台传输

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:37:07 25 4
gpt4 key购买 nike

我围绕 AFNetworking 2.0 的 AFHTTPSessionManager 及其出色的 HTTP 便捷方法构建了一个应用程序。我现在需要确保所有这些网络功能都可以在后台运行,我很担心。

阅读 Apple 的文档,我可以看到后台 session 不支持数据任务。在简要查看了 AFHTTPSessionManager 对 GET、POST、PUT 等的实现后,它似乎全面使用了 NSURLSessionDataTask。

我是否遗漏了什么,或者我是否需要重新设计和返工?

如果我是对的(而且我怀疑我是对的),并且这个代码路径不允许我在后台上传和下载,有什么理由我不能包装 AFURLSessionManager 的其他使用非-数据任务是否与当前 HTTP 方法包装“dataTaskWithRequest:completionHandler”的方式相同?例如,对于 POST,我或许可以使用“uploadTaskWithRequest:fromData:progress:completionHandler”?

我在问,因为我想知道这是否是一条可行的路线,为什么 AFNetworking 开发人员不使用它,以便 AFHTTPSessionManager 的便捷方法允许后台传输。

最佳答案

AFNetworking 允许您执行后台请求(但请注意不要使用任何特定于任务的完成 block 并确保您实现了适当的应用程序委托(delegate)方法;请参阅 AFNetworking 2.0 and background transfers )。您可能也可以使用 AFHTTPRequestSerializerrequestWithMethod 来简化构建请求的过程(尽管 IIRC,您不能使用 HTTPBody带有后台上传请求的请求,因此您可能必须将请求的主体保存到文件中,然后使用该文件发出后台上传请求。

但是您绝对正确,在使用后台 session 时不能使用 AFHTTPSessionManager 方法来启动 NSURLSessionDataTask 任务。关于他们为什么这样实现,这是一个更适合 their issues forum 的问题.

关于ios - AFHTTPSessionManager 便捷方法(GET、POST、PUT 等)和后台传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com