编辑:查看注释中的解决方案。
我正在尝试从我们的服务器上下载用户个人资料的头像,并且遇到一个问题,无论使用哪个URL,Alamofire ImageDownloader请求都会失败,并显示“已取消”状态和错误代码-999。我尝试从与我们的应用程序无关的其他域下载,每次都遇到相同的问题。到目前为止,我尝试过的所有URL都是https,因为我们应用程序的info.plist会阻止不安全的URL。但是,我已经验证了所请求的图像可以在未经身份验证的Web浏览器中下载而没有任何问题。另外,我们在整个应用程序中成功使用了Alamofire SessionManager,包括需要身份验证的请求,因此这种现象似乎仅限于ImageDownloader。
示例代码:
let downloader = ImageDownloader(configuration: ImageDownloader.defaultURLSessionConfiguration(),
downloadPrioritization: .fifo,
maximumActiveDownloads: 4,
imageCache: AutoPurgingImageCache())
let testString = "https://www.some-domain.com/image-url.jpg"
let urlRequest = URLRequest(url: URL(string: testString)!)
downloader.download(urlRequest) { response in
debugPrint(response.result)
if let image = response.result.value {
print(image)
self.profilePicture = response.result.value
} else {
self.profilePicture = UIImage(named: "avatar")
}
产生的错误如下:
2018-11-27 15:32:06.457067-0800 Tocca Dev[945:145021] Task <88DB86C7-7C28-44EB-8ABA-54008A3CC97C>.<1> load failed with error Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo={NSErrorFailingURLStringKey=https://www.some-domain.com/image-url.jpg, NSErrorFailingURLKey=https://www.some-domain.com/image-url.jpg, _NSURLErrorRelatedURLSessionTaskErrorKey=(
"LocalDataTask <88DB86C7-7C28-44EB-8ABA-54008A3CC97C>.<1>"
), _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <88DB86C7-7C28-44EB-8ABA-54008A3CC97C>.<1>, NSLocalizedDescription=cancelled} [-999]
2018-11-27 15:32:06.476488-0800 Tocca Dev[945:145023] Task <88DB86C7-7C28-44EB-8ABA-54008A3CC97C>.<1> HTTP load failed (error code: -999 [1:89])
2018-11-27 15:32:06.477430-0800 Tocca Dev[945:145023] Task <88DB86C7-7C28-44EB-8ABA-54008A3CC97C>.<1> finished with error - code: -999
任何帮助将不胜感激。