使用NSURLConnection获取文件大小非常慢

时间:2015-10-29 16:57:43

标签: ios swift nsurlconnection nsurl nshttpurlresponse

我尝试获取存储在服务器上的文件的文件大小。

我设法做到了,但只要我下载它就需要。

我假设它会下载文件以评估大小。

有更快的方法来获取文件大小吗?

func getFileSizeFromURL(sURL:String) -> String{

    let urlPath: String = sURL;
    var url: NSURL = NSURL(string: urlPath)!
    var request1: NSURLRequest = NSURLRequest(URL: url)


    var response : NSURLResponse?
    NSURLConnection.sendSynchronousRequest(request1, returningResponse: &response , error: nil)


    var size:String="";

    if let httpResponse = response as? NSHTTPURLResponse {
        println(httpResponse.expectedContentLength)


        size="\(httpResponse.expectedContentLength)"

    }

    return size;

}

1 个答案:

答案 0 :(得分:1)

  

我假设它会下载文件以评估大小。

是的,那是因为您实际上正在下载该文件。您应该使用HEAD request来获取有关该文件的数据。将方法从GET或POST更改为HEAD只会获得HTTP标头。创建request1后,插入如下所示的行:

request1.HTTPMethod = "HEAD"