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

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");
webRequest.Headers.Add("Referer", "http://www.mzwu.com/");
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 | 引用: 0 | 查看次数: 7097
发表评论
登录后再发表评论!