查找URL的下载大小(Content-Length)

我正在寻找一些Objective-c代码来查询URL并给出下载大小,类似于此示例: 在下载之前检查下载大小

但是在objective-c中,使用ASIHttp就可以了。

启动HTTP HEAD请求:

NSURL *url = [NSURL URLWithString:@"http://www.google.com/"]; NSMutableURLRequest *httpRequest = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; [httpRequest setHTTPMethod:@"HEAD"]; NSURLConnection *urlConnection = [[NSURLConnection alloc] initWithRequest:httpRequest delegate:self]; 

实现委托:

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

答案是一样的。 HTTP HEAD请求。 在您引用的post中没有特定于语言的内容。

从iOS 9开始,应该使用NSURLSession而不是不推荐使用的NSURLConnection

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:@"http://www.google.com/" cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10]; [request setHTTPMethod:@"HEAD"]; NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; NSURLSession *session = [NSURLSession sessionWithConfiguration:config delegate:nil delegateQueue:queue]; [[session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { NSLog(@"%lld", response.expectedContentLength); }] resume];