【发布时间】:2019-02-01 07:15:31
【问题描述】:
我正在尝试从 url (https://windows.php.net/downloads/releases/php-7.2.9-nts-Win32-VC15-x64.zip) 获取文件大小,这是我拥有的代码 -
HttpWebRequest request = HttpWebRequest.CreateHttp(url);
HttpWebResponse response = (HttpWebResponse)(await request.GetResponseAsync());
long length = response.ContentLength;
但length 的值是598 bytes,而网站(以及从浏览器下载时)报告的大小为24.5MB。我什至尝试从响应头访问"Content-Length",但它也有相同的值598。
我错过了什么吗?有没有其他方法可以更准确地获取文件大小?
【问题讨论】:
-
你可以查看这个帖子:file size from url
-
@omriman12,您链接的帖子讨论了我已经使用的 2 种方法,response.ContentLength 和响应标头中的“Content-Length”。在这种特定情况下,它们都返回不正确的长度。
-
你看过实际的结果是什么了吗?当结果大小可以理解时,它是否会重定向到其他地方?
-
您是否检查了响应对象的内容类型属性...如果这是一个重定向页面,它将显示“文本”并返回该页面的大小(我认为是这种情况)而对于 zip 文件,它将显示“zip”
-
@A.Learn,是的,响应对象的 ContentType 是“text/plain”,并且 StatusCode 是好的。我尝试使用 AllowAutoRedirect 向 true 和 false 发出请求,但响应对象是相同的。那么,如何获得最终的下载地址呢?