2017-02-15 69 views
0

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

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 Testing[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 2 Connection has no connected handler 2017-02-16 04:27:37.167092 WiFi Testing[78708:7989639] [] __nw_connection_get_connected_socket_block_invoke 3 Connection has no connected handler 2017-02-16 04:27:37.169050 WiFi Testing[78708:7989627] PAC stream failed with 2017-02-16 04:27:37.170688 WiFi Testing[78708:7989639] [] nw_proxy_resolver_create_parsed_array PAC evaluation error: kCFErrorDomainCFNetwork: 2

有人能告诉我是什么做错了,我该如何解决?谢谢!

+0

不知道答案,但我建议使用Alamofire框架 - 使这样的任务更容易编码。 –

回答

0

缺少接收数据的代码。

使用代理方法URLSession或者使用完成处理程序实现dataTask方法。

另外一个GET请求,你并不需要一个URLRequest - 从来没有在斯威夫特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() 
    } 
}