【问题标题】:Get remote file size via HTTP without downloading said file通过 HTTP 获取远程文件大小而不下载所述文件
【发布时间】:2010-08-03 14:24:54
【问题描述】:

有什么方法可以在不实际下载的情况下获取(远程、http)文件的大小?

所有其他类似问题似乎都围绕着从didReceiveResponse: 中的NSURLResponse 对象中获取expectedContentLength,但我不想下载该文件,我只想知道它有多大。

【问题讨论】:

    标签: iphone web-services file nsurlconnection nsurlrequest


    【解决方案1】:

    尝试发出 HEAD 请求,它只返回包含 Content-Length 标头的标头。

    ~$ curl -I http://google.com/
    HTTP/1.1 301 Moved Permanently
    Location: http://www.google.com/
    Content-Length: 219
    ...
    

    【讨论】:

    • 一般情况下是正确的,但以防万一服务器发送 Content-Length,如果内容长度未知,它可能不会这样做。但这是客户能做的最好的事情。
    • 嗯,似乎 NSURL 对 HEAD 请求有问题(至少根据 cocoabuilder.com/archive/cocoa/… ),但我会试一试。谢谢!
    • Content-Length 还报告 gzip 压缩长度,如果在服务器上打开压缩。例如,google.com 绝对超过 219 个字节。
    猜你喜欢
    • 2011-02-05
    • 2015-03-05
    • 2015-02-20
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    相关资源
    最近更新 更多