如何在iOS中使用NSURLRequest获取服务器中的文件大小?
服务器中有一个映像文件。我想知道图像的大小,而不需要从服务器下载它 您将希望执行HEAD请求,而不是GET请求。然后检查内容长度以获得大小如何在iOS中使用NSURLRequest获取服务器中的文件大小?,ios,iphone,download,Ios,Iphone,Download,服务器中有一个映像文件。我想知道图像的大小,而不需要从服务器下载它 您将希望执行HEAD请求,而不是GET请求。然后检查内容长度以获得大小 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"HEAD"]; [NSURLConnection sendAsynchronousRequest:request queue:queue completio
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发出
头
类型请求,并从响应头读取内容长度
键值。检查可能的副本