在iOS中下载文件[重复]

Posted

技术标签:

【中文标题】在iOS中下载文件[重复]【英文标题】:Downloading files in iOS [duplicate] 【发布时间】:2017-02-15 20:36:00 【问题描述】:

我正在尝试使用 Swift 下载文件。这是我代码中的下载器类:

class Downloader 
    class func load(URL: URL) 
    let sessionConfig = URLSessionConfiguration.default
    let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
    let request = NSMutableURLRequest(url: URL)
    request.httpMethod = "GET"
    let task = session.dataTask(with: URL)
    task.resume()
    

我这样调用函数:

if let URL = URL(string: "https://web4host.net/5MB.zip") 
        Downloader.load(URL: URL)

但是弹出这个错误信息:

2017-02-16 04:27:37.154780 WiFi 测试[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 2 连接没有连接的处理程序 2017-02-16 04:27:37.167092 WiFi 测试[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 3 连接没有连接的处理程序 2017-02-16 04:27:37.169050 WiFi 测试 [78708:7989627] PAC 流失败 2017-02-16 04:27:37.170688 WiFi 测试[78708:7989639] [] nw_proxy_resolver_create_parsed_array PAC 评估错误:kCFErrorDomainCFNetwork:2

谁能告诉我我做错了什么以及如何解决它?谢谢!

【问题讨论】:

不知道答案,但我建议使用 Alamofire 框架——这样的任务更容易编写代码。 【参考方案1】:

接收数据的代码丢失。

要么使用URLSession 的委托方法,要么使用完成处理程序实现dataTask 方法。

对于 GET 请求,您不需要 URLRequest – 无论如何都不要在 Swift 3 中使用 NSMutableURLRequest – 只需传递 URL 并且不要使用 URL 作为变量名,它是一个结构体斯威夫特 3

class Downloader 
    class func load(url: URL)  // better func load(from url: URL)
       let sessionConfig = URLSessionConfiguration.default
       let session = URLSession(configuration: sessionConfig, delegate: nil, delegateQueue: nil)
       let task = session.dataTask(with: url)  (data, response, error) in 
          // handle the error
          // process the data
       
       task.resume()
    

【讨论】:

以上是关于在iOS中下载文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 iOS 7 中下载文件之前查找文件的大小?

在 ASP.Net Core 中下载文件时,我的文件从服务器正确返回,但没有从 UI [重复]

django 中下载文件与下载保存为excel

无法在 django 中下载文件

如何在CMD命令中下载文件

在 iPhone 设备中下载文件