Получение размера файла с NSURLConnection очень медленно

Я пытаюсь получить размер файла, хранящегося на сервере.

Мне удается сделать, но это занимает столько времени, сколько я бы скачать его.

Я предполагаю, что это загрузит файл, чтобы оценить размер.

Есть ли более быстрый способ получить размер файла?

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 ответ

Решение

Я предполагаю, что это загрузит файл, чтобы оценить размер.

Да, это потому, что вы на самом деле скачиваете файл. Вместо этого вы должны использовать запрос HEAD, чтобы получить только данные о файле. Изменение метода с GET или POST на HEAD даст вам только заголовки HTTP. Вставьте такую ​​строку после создания request1:

request1.HTTPMethod = "HEAD"
Другие вопросы по тегам