【发布时间】:2020-03-04 06:14:07
【问题描述】:
我想在下载之前获取文件大小,在我的代码中,我从请求中提取 Content-Length 标头。我的代码在很多情况下都可以正常工作,但在某些情况下没有Content-Length 标头,我的问题是在我没有Content-Length 标头的情况下如何获取文件大小,这里是我的代码:
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("https://www.learningcontainer.com/wp-content/uploads/2019/09/sample-docx-file-for-testing.docx");
using (HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse())
{
var headers = myHttpWebResponse.Headers;
if (headers.AllKeys.Contains("Content-Length"))
var fileSize = headers.GetValues("Content-Length")[0];
else
{
//code here should be added
}
}
例如在给定的 url 中没有 Content-Length 标头
【问题讨论】:
-
如果服务器不发送
Content-Length标头,则无法确定大小,因为内容将被流式传输;如果不实际阅读,您将无法知道流的大小。
标签: c# httprequest content-length