2017-11-11 101 views
0

我正在尝试使用WebClient来读取网页,如下所示,但这样做并不成功。我从网页上得到了上述错误回应。我尝试了很多关于这个问题的具体问题,但一直没有找到相关的答案。我尝试使用代理以及,但有ServiceAccessManager无法使用HTTPS代理的其他问题...我将不胜感激,如果你们可以帮助!WebClient说“更新您的浏览器”

<!DOCTYPE html> 
<html> 
    <head> 

     <title>Update your browser</title> 

     <!-- Bootstrap CDN --> 
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 

     <style> 
      ... 
     </style> 

    </head> 
    <body> 

     <header> 
      ... 
     </header> 

     <main> 
      <div class="container"> 
       <div class="row"> 
        <div class="col-md-12"> 
         <h1>Update your browser</h1> 
         <h3>Unfortunately, we don't support your browser</h3> 
         <p>For your security, we only support browsers using the latest encryption technology.</p> 
        </div> 
       </div> 
      </div> 
     </main> 

    </body> 
</html> 

     Uri siteUri = new Uri(url); 
     using (var client = new WebClient()) 
     { 
      client.Headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36";    
      try 
      { 
       using (var stream = client.OpenRead(siteUri)) 
       { 
        string Data = client.DownloadString(siteUri);       
       } 
      } 
      catch (WebException ex) 
      { 
       using (var sr = new StreamReader(ex.Response.GetResponseStream())) 
        html = sr.ReadToEnd(); 

       return false; 

      } 

回答

0

页面或服务器正试图检测用户正在使用的浏览器的类型。在这种情况下,WebClient不符合标准。也许它试图运行一些JS?或寻找一个用户代理头?无论哪种方式,你都不符合法案,所以网站正在给出这个信息。有没有一个很好的明确答案 - 这是什么网站?你能问他们吗?

+0

听起来对我来说是正确的,但我不够了解。你可以提供一个显示这个网站的OP吗? – kenny

+0

以下是网站:https://www.tkmaxx.com/ – Kafiz