木子屋 Dnawo's BLOG

WebRequest抓取页面出错:此标头必须使用适当的属性进行修改

👤 dnawo 📅 2012-10-27 👁 7929 👍 0 💬 0 🔄 来源:本站原创
WebRequest抓取页面出错,提示:此标头必须使用适当的属性进行修改(红色地方出错):

Uri uri = new Uri("http://www.baidu.com/");
WebRequest webRequest = WebRequest.Create(uri);
webRequest.Method = "GET";
webRequest.Headers.Add("UserAgent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4");
[color=Red]webRequest.Headers.Add("Referer", "http://www.mzwu.com/");[/color]
WebResponse webResponse = webRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.GetEncoding("gb2312")))
{
    Response.Write(streamReader.ReadToEnd());
}

原因是WebRequest不支持Headers.Add方式设置Referer,改用HttpWebRequest即可:

Uri uri = new Uri("http://www.baidu.com/");
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
webRequest.Method = "GET";
webRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4";
webRequest.Referer = "http://www.mzwu.com/";
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
using (StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.GetEncoding("gb2312")))
{
    Response.Write(streamReader.ReadToEnd());
}

评论(0)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 ASP.NET MVC3在View中使用Session示例 下一篇 → C#使用HttpWebRequest和HttpWebRespon…