gpt4 book ai didi

swift - 如何使用带有 requestbody 的 urlsession 下载文件

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

我需要使用 url 和请求正文请求服务器,但响应将是一个 zip 文件,我需要下载 zip 文件并使用它,所以我使用了以下方法,但我需要知道如何保存文件和重复使用它但出现以下错误

任务 <11E36FDA-1408-474D-B576-A222DEBA53B2>。<3> 已完成,但出现错误 - 代码:-1005

     func performSyncRequest()
{
let documentsUrl = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first
let url = syncUrl.prepareSyncURL()
var urlrequest = URLRequest(url: url)
urlrequest.httpMethod = "POST"
urlrequest.addValue("application/json", forHTTPHeaderField: "Content-Type")
let requestBody = syncUrl.prepareRequestBody()
guard let httpBody = try? JSONSerialization.data(withJSONObject: requestBody, options: []) else { return }
urlrequest.httpBody = httpBody
do {
let convertedString = String(data: httpBody, encoding: String.Encoding.utf8)
print("Sync Request Body: \(convertedString!)")
}

let downloadTask = URLSession.shared.downloadTask(with: urlrequest, completionHandler: { url,response,error in
if error == nil {
//some code

do {
try FileManager.default.copyItem(at:url!, to: self.documentsUrl!)
print(self.documentsUrl!)
} catch (let writeError) {
print("error writing file \(self.documentsUrl!) : \(writeError)")
}

}
})

downloadTask.resume()

}

最佳答案

这里的问题是在尝试下载 zip 文件时,它们没有内容长度 header ,因此为了解决该问题,我使用了以下代码,并且运行良好

 urlrequest.addValue("", forHTTPHeaderField: "Accept-Encoding")

关于swift - 如何使用带有 requestbody 的 urlsession 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47648012/

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