在下载内容之前检查ContentLength的大响应

时间:2013-05-09 08:18:15

标签: c# httpwebrequest

我正在使用HttpWebRequest并希望在下载整个响应之前检查响应的ContentLength。但是在打电话时:

var res = request.GetResponse(); // entire response is being downloaded
var len = res.ContentLegth; // need only this value 

如何在C#中实现这一目标?

2 个答案:

答案 0 :(得分:2)

您需要发出HEAD请求,而不是GET。然后,这将仅返回响应中的HTTP标头。

所有标准化的HTTP请求类型都记录在案here

答案 1 :(得分:1)

好的,所以问题中的原始代码确实有效,它只下载" HEAD"在致电" GetResponse" ContentLength是可用的。 它对我来说没有用,因为我得到的资源有一个" chunked"转移编码。 这仍然应该有效,如果我没有用fiddler open测试它,在ContentLength中返回-1。当小提琴手遇到一个" chunked"响应它试图下载所有内容,即使只是调用" req.GetResponse()"。