AFNetworking 2.0:NSURLSessionDownloadTask 在收到 302 到 AWS S3 时被取消
Posted
技术标签:
【中文标题】AFNetworking 2.0:NSURLSessionDownloadTask 在收到 302 到 AWS S3 时被取消【英文标题】:AFNetworking 2.0: NSURLSessionDownloadTask is cancelled when received 302 to AWS S3 【发布时间】:2013-10-04 10:46:43 【问题描述】:我正在使用 README 文件(来自 AFNetworking 2.0 页面)中的一个简单示例来下载图像。对于直接从我的网络服务器提供的图像,一切正常。 但是对于那些位于 S3 上的网络服务器返回 302 重定向以下错误:
Error Domain=NSURLErrorDomain Code=-999 "cancelled"
当我尝试直接从 S3 下载图像(使用相同的代码)(省略重定向)时,我收到了同样的错误。
我已经使用 wget 检查了实际图像的可用性。图片已公开 (https://youguide.s3.amazonaws.com/icons/user_96x96.png)。
有人遇到过类似的问题吗?
【问题讨论】:
【参考方案1】:我在使用 S3 时遇到了同样的问题,并且似乎已经解决了。 AFNetworking 在取消请求的身份验证质询处理逻辑中返回了一个值。
通过告诉AFURLSessionManager
如何处理身份验证挑战,我已经解决了这个问题。
[manager setSessionDidReceiveAuthenticationChallengeBlock:^NSURLSessionAuthChallengeDisposition (NSURLSession *session, NSURLAuthenticationChallenge *challenge, NSURLCredential * __autoreleasing *credential)
return NSURLSessionAuthChallengePerformDefaultHandling;
];
【讨论】:
感谢您的提示。使用 AFHTTPRequestOperationManager 而不是 SessionManager 的情况呢? 将您的AFNetworking
升级到 2.0.1,应该会为您修复该错误。昨天有一个提交全面解决了这个问题,因为它是在 HTTP 对应子类的AFURLSessionManager
中完成的。这是相关的 GitHub 问题线程:github.com/AFNetworking/AFNetworking/issues/…。
你拯救了我的一天!非常感谢!
我在使用 afn 3 的 S3 图像文件时遇到同样的错误,我该如何解决?以上是关于AFNetworking 2.0:NSURLSessionDownloadTask 在收到 302 到 AWS S3 时被取消的主要内容,如果未能解决你的问题,请参考以下文章