Я потратил много часов, пытаясь безуспешно пробовать различные идеи, найденные в сообщениях по этому вопросу. Когда я использую curl, я получаю желаемый заголовок: Content-Length.
Вот моя последняя попытка (найденная где-то на SO):
- (void) trythis {
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:config];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:myURL];
request.HTTPMethod = @"HEAD";
NSURLSessionDownloadTask *uploadTask
= [session downloadTaskWithRequest:request
completionHandler:^(NSURL *url,NSURLResponse *response,NSError *error) {
NSLog(@"handler size: %lld", response.expectedContentLength);
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response;
NSDictionary* headers = [httpResponse allHeaderFields];
NSArray *keys = [headers allKeys];
for( NSString *key in keys){
NSLog(@"key: %@ : %@", key, [headers valueForKey:key]);
}
NSLog(@"");
}];
// 5
[uploadTask resume];
}
Он возвращает эти заголовки:
ключ: Vary: Accept-Encoding, ключ пользователя-агента: Сервер: Apache / 2.4.12 ключ: Подключение: Keep-Alive key: Последнее изменение: Сб, 13 июня 2015 г. 23:03:46 GMT ключ: Content-Type: ключ audio / mpeg: Accept-Ranges: ключ байтов: Дата: Вт, 12 апреля 2016 г. 17:59:21 GMT ключ: Content-Encoding: gzip
Используя curl (на MacBook), я получаю:
curl -I http://boulderhomegrown.com/fiddletunes/JerusalemRidge-100.mp3
HTTP / 1.1 200 OK Дата: Вт, 12 апреля 2016 г. 14:55:17 GMT Сервер: Apache / 2.4.12 Последнее изменение: Сб, 13 июня 2015 г. 23:03:46 GMT ETag: "2ec0bc0-1a172e-5186e3ca6b55f" Принять -Диапазоны: байты Content-Length: 1709870 Варьируются: Accept-Encoding, User-Agent Content-Type: audio / mpeg
ОБРАТИТЕ ВНИМАНИЕ, что Content-Length !! И, конечно же, URL в обоих случаях одинаковый. Это переменная экземпляра в моей objective-c.
response.expectedContentLength
, как вы это использовали? - person jtbandes   schedule 12.04.2016request.HTTPMethod = @"HEAD";
? - person EricS   schedule 12.04.2016