如何使用WebRequest仅下载标头

时间:2010-09-24 04:44:40

标签: .net performance http httpwebrequest

我正在编写一些脚本来查找ASP.NET中的padding oracle漏洞的漏洞,我需要查看响应中的HttpStatusCode。我在不同场景的大量网站上进行此操作,性能非常重要。我可以使用以下代码完成此操作:

var req = (HttpWebRequest)WebRequest.Create(uri);
req.AllowAutoRedirect = false;
HttpWebResponse resp;

try
{
  resp = (HttpWebResponse)req.GetResponse();
  resp.Close();
}
catch (WebException e)
{
  resp = (HttpWebResponse)e.Response;
}
responseCode = resp.StatusCode;

唯一的问题是整个响应体被下载(根据Fiddler),它对大量枚举有一点性能影响。所以问题是这个;是否可以在不下载整个主体的情况下只检索标题?

也许我没有正确掌握一些基本的HTTP概念,但如果有办法大幅减少响应大小并通过在网络上完整的页面来消除响应时间的一些变化,我会喜欢听它。谢谢!

2 个答案:

答案 0 :(得分:4)

也许在请求中使用HEAD动词?

答案 1 :(得分:1)

这个其他堆栈溢出问题有一个代码示例的详细答案:

WebRequest "HEAD" light weight alternative