如何在iOS中使用NSURLRequest获取服务器中的文件大小?

如何在iOS中使用NSURLRequest获取服务器中的文件大小?,ios,iphone,download,Ios,Iphone,Download,服务器中有一个映像文件。我想知道图像的大小,而不需要从服务器下载它 您将希望执行HEAD请求,而不是GET请求。然后检查内容长度以获得大小 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"HEAD"]; [NSURLConnection sendAsynchronousRequest:request queue:queue completio

服务器中有一个映像文件。我想知道图像的大小,而不需要从服务器下载它

您将希望执行HEAD请求,而不是GET请求。然后检查内容长度以获得大小

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];  
[request setHTTPMethod:@"HEAD"];  
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
       NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;

    NSLog(@"Size: %@", [[httpResponse allHeaderFields] objectForKey:@"Content-Length"]);
}];
请注意,
[[response allHeaderFields]objectForKey:@“Content Length”]
将返回NSNumber或NSString,而不是原语(我不确定是哪一个,您必须测试它,或者其他人可以对此发表评论)

更新

[response expectedContentLength]
是一种在发出请求后获取内容长度的更简单方法。并且返回一个
long
,而不是NSNumber或NSString。

使用NSMutableURLRequest发送请求和委托方法

    -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
   {
     long expectedlength=[response expectedContentLength];
   }

我希望它能起作用

看看这个,您需要向URL发出
类型请求,并从响应头读取
内容长度
键值。检查可能的副本