63 c# http download http-headers
我想在下载之前获取http:/.../文件的大小.该文件可以是网页,图像或媒体文件.可以使用HTTP标头完成吗?如何仅下载文件HTTP标头?
mdb*_*mdb 91
是的,假设你正在谈论的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;
}
Run Code Online (Sandbox Code Playgroud)
如果不允许使用HEAD方法,或者服务器回复中不存在Content-Length标头,则确定服务器上内容大小的唯一方法是下载它.由于这不是特别可靠,大多数服务器都会包含此信息.
Kon*_*lph 27
可以使用HTTP标头完成吗?
是的,这是要走的路.如果提供了信息,它就在标题中Content-Length.但请注意,情况不一定如此.
只下载标题可以使用HEAD请求而不是GET.也许以下代码有帮助:
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://example.com/");
req.Method = "HEAD";
long len;
using(HttpWebResponse resp = (HttpWebResponse)(req.GetResponse()))
{
len = resp.ContentLength;
}
Run Code Online (Sandbox Code Playgroud)
注意HttpWebResponse对象上内容长度的属性 - 无需Content-Length手动解析标头.
| 归档时间: |
|
| 查看次数: |
47682 次 |
| 最近记录: |