WebClient说"更新您的浏览器"

时间:2017-11-11 09:47:07

标签: c# webclient

我正在尝试使用WebClient阅读网页,如下所示,但我没有成功。我从网页上得到了上述错误响应。我尝试了很多关于这个问题的具体内容但是还没有找到相关的答案。我也尝试使用代理,但是另一个问题是ServiceAccessManager无法使用https代理......如果你们能帮忙,我将不胜感激!

   <!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;

             }

1 个答案:

答案 0 :(得分:0)

页面或服务器正在尝试检测用户正在使用的浏览器类型。在这种情况下,WebClient不符合它的标准。也许它试图运行一些JS?或者寻找User-Agent标头?无论哪种方式,您都不适合账单,因此该网站正在提供该消息。对此没有真正明确的答案 - 网站是什么?你能问他们吗?