在下载内容前检查大响应的ContentLength
本文关键字:响应 ContentLength 检查 下载 | 更新日期: 2023-09-27 18:12:54
我使用HttpWebRequest,并希望在下载整个响应之前检查响应的ContentLength。但是当调用:
var res = request.GetResponse(); // entire response is being downloaded
var len = res.ContentLegth; // need only this value
您需要发出HEAD请求,而不是GET请求。这样只会在响应中返回HTTP报头。
所有标准化的HTTP请求类型都记录在这里。
Ok,所以问题中的原始代码实际上确实有效,它只在调用"GetResponse"和ContentLength可用时下载"HEAD"。它不适合我,因为我得到的资源有一个"块"传输编码。这仍然应该工作,在ContentLength返回-1,如果我没有测试它与fiddler打开。显然,当fiddler遇到"块"响应时,它会尝试下载所有响应,即使只是调用"req.GetResponse()"。