Получение размера файла с 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"