从服务器下载.pdf
文件时遇到问题。我从服务器获取了URL,我将下载文件,但该URL仍为empty
文件。当移动设备点击该网址时,服务器将检查该文件是否可用。如果可用,它只需从我的服务器下载。如果不可用,我的服务器将从另一台服务器下载该文件,直到完成并保存到我的服务器,然后移动设备可以从我的服务器下载该文件。
如何等待Alamofire
等待我的服务器完成下载?我总是得到代码-1001
。这是我的代码
let destination: DownloadRequest.DownloadFileDestination = { _, _ in
let documentsURL:NSURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first! as NSURL
print("***documentURL: ",documentsURL)
let PDF_name : String = "\(id).pdf"
let fileURL = documentsURL.appendingPathComponent(PDF_name)
print("***fileURL: ",fileURL ?? "")
return (fileURL!,[.removePreviousFile, .createIntermediateDirectories])
}
let configuration = Alamofire.SessionManager.default
configuration.session.configuration.timeoutIntervalForRequest = 200
configuration.session.configuration.timeoutIntervalForResource = 200
//let destination = DownloadRequest.suggestedDownloadDestination()
let download = Alamofire.download(url, method: .get, parameters: [:], encoding: JSONEncoding.default, headers: authHeader, to: destination).downloadProgress(closure: { (prog) in
let json: [String: Any] = ["file": "", "progress": prog.fractionCompleted]
observer.onNext(JSON(json))
}).response(completionHandler: { response in
let status = response.response?.statusCode
if status == 200 {
if let url = response.destinationURL {
let json: [String: Any] = ["file": url.path, "progress": 100]
observer.onNext(JSON(json))
observer.onCompleted()
}
} else {
observer.onError(NSError(domain:"", code:500, userInfo:["error": "Error Connection".localized()]))
}
})
谢谢大家
答案 0 :(得分:0)
我已经解决了我的问题,我用Alamofire.download
用downloadTask更改了URLSession
。我不知道为什么,当使用Alamofire
我总是得到代码-1001或RTO来下载文件但是当使用URLSession
时,文件可以正常下载而无需RTO,为什么?与Alamofire.download
URLSession.downloadTask?