【问题标题】:How to get the size of the file in a server using NSURLRequest in iOS?如何在 iOS 中使用 NSURLRequest 获取服务器中文件的大小?
【发布时间】:2014-02-28 06:28:48
【问题描述】:

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

【问题讨论】:

标签: ios iphone download


【解决方案1】:

您需要执行 HEAD 请求而不是 GET 请求。然后您将检查 Content-Length 以获取大小。

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 long,而不是一个NSNumber或NSString。

【讨论】:

    【解决方案2】:

    使用 NSMutableURLRequest 发送请求和 In Delegate 方法

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

    我希望它会起作用..!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 2016-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多