C# HttpWebRequest 没有得到正确的页面

C# HttpWebRequest not getting the correct page

我正在使用以下代码获取网页:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36";
                request.Method = "GET";
                response = request.GetResponse();
                reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                result = reader.ReadToEnd();

它通常有效,但我有一个页面我必须解析,这让我很伤心。我不能直接 link 页面(不幸的是,外部用户无法访问它)但问题是:我从浏览器检查了源代码,页面的头部有以下标记:

<link rel="alternate" type="application/rss+xml" title="blah blah blah title blah bla" href="http://url_of_the_site/feed/" />

基本上,我从 HttpRequest 返回的页面实际上是该 href 中指示的页面,它是站点 RSS 提要的 link,而不是我请求的实际页面。就好像这个网站 "sensing" 对我的请求有些特殊,并认为我是 RSS 客户端而不是浏览器,或者类似的东西。

知道为什么会这样吗?我该如何解决这个问题??

对 HttpRequest 使用 xNet,例如

using(var request=new HttpRequest()){
    var response =request.Get("Your link");
    response=request.Post("link","data");
}

执行来自有效客户端(浏览器)和无效客户端(您的代码)的请求。观察与 Fiddler 的区别。一个一个地删除它们,直到它开始工作。