HttpWebRequest方法HEAD返回正文



我使用方法"Head"的web请求不断返回我的网页正文(在localhost上)。以下是它的基本创建方式:

HttpWebRequest webrequest = WebRequest.Create(url.ToString()) as HttpWebRequest;
webrequest.Method = "HEAD";
WebResponse response = webrequest.GetResponse();

当我在aspx.cs页面中放置断点时,我进入了OnInit()方法和page_Load()方法,在那里我认为我不应该使用Head方法请求介入(我错了吗?)。

在我的Page_Load()中,我执行一些代码,当我用Head方法调用时,我不想执行这些代码,但稍后当我用Get方法调用时(一旦我得到了头)。

我是不是错过了什么?(还不太熟悉Http请求和响应…:/)谢谢你的帮助!

试试这个示例代码方法。。。。

for (int i = 0; i < ParsedLinks.Count; i++)
{
        Thread.Sleep(500);
        HttpWebRequest req = (HttpWebRequest)WebRequest.Create(ParsedLinks[i]);
        req.Method = "HEAD";
        req.Credentials = CredentialCache.DefaultCredentials;
        HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
        bool b_Result = int.TryParse(resp.Headers.Get("Content-Length"), out i_ContentLength);
        int i_Size = (int)(i_ContentLength / 1024);
        req.Abort();
        resp.Close();
}

希望能有所帮助http://forums.asp.net/t/1412824.aspx/1

不同的是,如果你试图读取响应,那么在HEAD的情况下你什么都得不到。您可以在哪里看到GET 情况下的响应内容

            var response = webrequest.GetResponse().GetResponseStream();
            Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
            StreamReader readStream = new StreamReader(response, encode);
            Console.WriteLine(readStream.ReadToEnd().Length) // you should see 0
            readStream.Close();

最新更新