Ios 在NSURLSession swift中下载带请求的任务

Ios 在NSURLSession swift中下载带请求的任务,ios,swift,nsurlsession,Ios,Swift,Nsurlsession,我想问一个关于下载文件的问题。我想向用户显示下载进度。因此,我在操场上实现了下面的类和代码,请参见[代码1] 当我执行下面的代码[场景1]时,我们可以得到结果。我看到内容大小值是return-1 之后,我执行下面的代码[场景2]。我看到内容大小值不是-1 这里怎么了?这是因为Chrome的高级Rest客户端可以获取内容长度,请参见[Reference 1],NSURLSession无法获取 我想显示html的下载进度。请帮忙 [情景1] var connectWebSite: webConnec

我想问一个关于下载文件的问题。我想向用户显示下载进度。因此,我在操场上实现了下面的类和代码,请参见[代码1]

当我执行下面的代码[场景1]时,我们可以得到结果。我看到内容大小值是return-1

之后,我执行下面的代码[场景2]。我看到内容大小值不是-1

这里怎么了?这是因为Chrome的高级Rest客户端可以获取内容长度,请参见[Reference 1],NSURLSession无法获取

我想显示html的下载进度。请帮忙

[情景1]

var connectWebSite: webConnect

connectWebSite = webConnect()
connectWebSite.downloadData("http://www.nba.com")
[情景1-结果]

[情景2]

var connectWebSite: webConnect

connectWebSite = webConnect()
connectWebSite.downloadData("http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso")
[情景2-结果]

[参考文献1]

[守则一]

import UIKit
import SystemConfiguration
import XCPlayground
import Foundation

XCPSetExecutionShouldContinueIndefinitely()

import Foundation

class webConnect: NSObject, NSURLSessionDelegate, NSURLSessionTaskDelegate ,NSURLSessionDataDelegate, NSURLSessionDownloadDelegate
{
    var mainSession : NSURLSession = NSURLSession()

    override init()
    {
        super.init()
        var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
        mainSession = NSURLSession(configuration: configuration,
            delegate: self,
            delegateQueue:NSOperationQueue.mainQueue())
    }

    /* delegate function during download */
    func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {

        var x: NSHTTPURLResponse

        x = downloadTask.response as NSHTTPURLResponse

        println("Content size - \(x.expectedContentLength)")
        println("download status - \(bytesWritten) \(totalBytesWritten) \(totalBytesExpectedToWrite) ")
    }

    /* delegate function fire when download completed */
    func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL)
    {
        var locateData: NSData
        var result: String

        locateData = NSData(contentsOfURL: location)!
        result = NSString(data: locateData, encoding: NSASCIIStringEncoding)!

        println("final result")
    }

    /* delegate function fire when error occur during download */
    func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?) {
        if (error != nil)
        {
            println("error - \(error?.description)")
        }
    }

    func downloadData(URLString: String)
    {
        var request = NSMutableURLRequest(URL: NSURL(string: URLString)!)
        var result : String = ""


        var task = self.mainSession.downloadTaskWithRequest(request)
        task.resume()

    }
}
var connectWebSite: webConnect

connectWebSite = webConnect()
/* Scenario 1*/
connectWebSite.downloadData("http://www.nba.com")
/* Scenario 2*/
connectWebSite.downloadData("http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-server-amd64.iso")