下载前,我想获取http:/…/文件的大小。该文件可以是网页,图像或媒体文件。可以使用HTTP标头完成此操作吗?如何仅下载文件HTTP标头?
是的,假设您正在与之通信的HTTP服务器支持/允许这样做:
public long GetFileSize(string url) { long result = -1; System.Net.WebRequest req = System.Net.WebRequest.Create(url); req.Method = "HEAD"; using (System.Net.WebResponse resp = req.GetResponse()) { if (long.TryParse(resp.Headers.Get("Content-Length"), out long ContentLength)) { result = ContentLength; } } return result; }
如果不允许使用HEAD方法,或者服务器答复中没有Content- Length标头,则确定服务器上内容大小的唯一方法是下载内容。由于这不是特别可靠,因此大多数服务器将包含此信息。