【问题标题】:webrequest get error page but browser get correct pagewebrequest 获取错误页面,但浏览器获取正确页面
【发布时间】:2011-05-14 12:51:19
【问题描述】:

我正在编写一个需要下载网页的应用程序。但是我使用这个代码方案来获取 html :

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);                
HttpWebResponse response = (HttpWebResponse)request.GetResponse();                

System.IO.Stream data = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(data, true);
string htmlCode = reader.ReadToEnd();

我对此网站的网址有疑问:http://www.jamejamonline.ir/

当我尝试以这种方式获取页面时,重定向到错误页面, 但所有网络浏览器都显示正确的 html 页面。

我该如何解决这个问题?

【问题讨论】:

  • 错误页面说什么?该网站是否需要 cookie?
  • 您可以使用 WebClient.DownloadString() 方法以更少的代码完成此操作
  • 错误页面是:“网站出错,请稍后再试”

标签: c# html download


【解决方案1】:

像这样指定一个用户代理

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(address);  
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";                
HttpWebResponse response = (HttpWebResponse)request.GetResponse();                

System.IO.Stream data = response.GetResponseStream();
System.IO.StreamReader reader = new System.IO.StreamReader(data, true);
string htmlCode = reader.ReadToEnd();

我试过了,效果很好!

【讨论】:

    【解决方案2】:

    您显示的代码段中似​​乎缺少请求方法。在您创建请求的行之后添加此行:

    request.Method = WebRequestMethods.Http.Get
    

    【讨论】:

    • request.Method的默认值为“Get”
    • 错误页面是:“网站出错,请稍后再试”
    猜你喜欢
    • 2011-11-24
    • 2015-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 2012-03-14
    • 2010-10-13
    相关资源
    最近更新 更多