HttpWebRequest方法HEAD返回正文
本文关键字:正文 返回 HEAD 方法 HttpWebRequest | 更新日期: 2023-09-27 18:21:19
我使用方法"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();