gpt4 book ai didi

ios - 使用 alamofire 下载文件获取代码 -1001

转载 作者:行者123 更新时间:2023-11-30 11:35:46 26 4
gpt4 key购买 nike

从服务器下载 .pdf 文件时遇到问题。我从服务器获得了要下载文件的 url,但该 url 仍然是文件。当移动设备点击该 URL 时,服务器将检查该文件是否可用。如果可用,只需从我的服务器下载。如果不可用,我的服务器将从另一台服务器下载该文件,直到完成并保存到我的服务器,然后移动设备可以从我的服务器下载该文件。

如何等待 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()]))
}
})

谢谢大家

最佳答案

我已经解决了我的问题,我将 Alamofire.download 更改为 URLSession 和 downloadTask。我不知道为什么,当使用Alamofire时,我总是得到代码-1001或RTO来下载文件,但当使用URLSession时,文件可以正常下载,无需RTO,为什么? Alamofire.downloadURLSession.downloadTask 有什么不同?

关于ios - 使用 alamofire 下载文件获取代码 -1001,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49793721/

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