【问题标题】:Alamofire - Download in fileAlamofire - 在文件中下载
【发布时间】:2016-12-01 12:18:13
【问题描述】:

我想从我的 API 下载文件中的数据(需要令牌),实际上,我有这个代码:

let headers = [
            "token": getToken()
        ]
Alamofire.download("http://API-URL.com/data/chapter/\(chapterID)/file", headers: headers)
      .downloadProgress { progress in
            print("Download Progress: \(progress.fractionCompleted)")
      }
      .responseData { response in
            print(response.result.value)
      }

文件已下载,我可以在模拟器的tmp目录中看到它, 进度事件也被触发,但下载结束后,临时文件被删除,response.result.valuenil

如何在请求和进度事件中下载带有标题的文件中的数据?

编辑我:

response.result.error给我:

Alamofire.AFError.responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.inputFileReadFailed(file:///Users/us001/Library/Developer/CoreSimulator/Devices/FABD2181-9702-4599-8D2D-7B25E2128F4A/data/Containers/Data/应用/C63C4524-6A53-410B-BE3E-66B5E6F6D069/tmp/CFNetworkDownload_zyr0xF.tmp

编辑二:

Alamofire.download 更改为Alamofire.request 删除错误并在response.result.value 中给我数据大小 但是文件还是被删除了

【问题讨论】:

  • 返回的是数据大小还是数据?

标签: swift alamofire


【解决方案1】:

使用此代码修复它:

Alamofire.request("http://elearning.api.univair-services.com/data/chapter/\(chapterID)/file", method: .get, headers: headers)
        .downloadProgress { progress in
            print("Download Progress: \(progress.fractionCompleted)")
        }
        .responseData { response in
            //print(response.result.error)
            do {
                try response.result.value?.write(to: File.getPath(filename: "_cr"))
            } catch {
                print("oops !")
            }

【讨论】:

  • 这个对象文件是什么?
猜你喜欢
  • 1970-01-01
  • 2016-07-17
  • 2017-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
相关资源
最近更新 更多