Alamofire ImageDownloader请求已取消,错误代码为-999

Alamofire ImageDownloader请求已取消,错误代码为-999,alamofire,alamofireimage,Alamofire,Alamofireimage,编辑:参见注释中的解决方案 我试图从我们的服务器下载用户配置文件头像,但遇到了一个问题,无论URL如何,Alamofire ImageDownloader请求都会失败,状态为“已取消”,错误代码为999。我尝试过从与我们的应用程序无关的其他域下载,每次都看到同样的问题。到目前为止,我尝试过的所有URL都是https,因为我们应用程序的info.plist阻止了不安全的URL。但是,我已经验证了所请求的图像可以在未经验证的web浏览器中下载,没有任何问题。此外,我们在整个应用程序中都成功地使用了A

编辑:参见注释中的解决方案

我试图从我们的服务器下载用户配置文件头像,但遇到了一个问题,无论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
2018-11-27 15:32:06.457067-0800 Tocca开发[945:145021]任务。加载失败,错误为Domain=nsurerrordomain Code=-999“已取消”UserInfo={NSErrorFailingURLStringKey=https://www.some-domain.com/image-url.jpg,n错误失败键=https://www.some-domain.com/image-url.jpg,_nsurlerorelatedurlSessionTaskErrorKey=(
“LocalDataTask。”
),_nsurlerrorfailingurlsessiontaskerrokery=LocalDataTask.,nslocalizeddedescription=cancelled}[-999]
2018-11-27 15:32:06.476488-0800 Tocca开发[945:145023]任务。HTTP加载失败(错误代码:-999[1:89])
2018-11-27 15:32:06.477430-0800 Tocca开发[945:145023]任务。已完成,但出现错误-代码:-999

任何帮助都将不胜感激。

我在AlamoFire开发者发表评论后解决了这个问题。问题是ImageDownloader在响应到达之前已被初始化。我将ImageDownloader声明更改为类级别,而不是在函数内部,现在它可以正常工作。