Windows runtime 加载完整的网站WinRT

Windows runtime 加载完整的网站WinRT,windows-runtime,httpclient,Windows Runtime,Httpclient,我想用HttpClient加载开普勒参考页面,如下所示: string resourceAddress = _url; HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, resourceAddress); HttpClient httpClient = new HttpClient(); // Do not buffer the respo

我想用HttpClient加载开普勒参考页面,如下所示:

string resourceAddress = _url;
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, resourceAddress);
            HttpClient httpClient = new HttpClient();
            // Do not buffer the response:
            HttpResponseMessage response = new HttpResponseMessage();
            response = await httpClient.SendAsync(request,
                 HttpCompletionOption.ResponseContentRead);



            using (Stream responseStream = await response.Content.ReadAsStreamAsync())
            {
                int read = 0;
                byte[] responseBytes = new byte[(Int32)responseStream.Length];
                do
                {
                    read = await responseStream.ReadAsync(responseBytes, 0, responseBytes.Length);
                } while (read != 0);
            }

但是我认为,页面不会被完全加载,比如没有所有的图像和iFrame等等。

仅下载第一段html很少足以提供页面的所有元素,即使你解析它并包含所有链接的图像等。还有css和javascript,当你在浏览器中打开一个页面时,它们会将新的内容带入你的视野,而你自己获得这一切将是一项类似于实现你自己的浏览器的工作。最好的选择是在WebView控件中加载页面一次,让它缓存其内容,或者使用WebView扫描DOM以尝试获取所有元素。您还可以编写一个web服务,为您下载页面,并向您提供整个包。。。假设页面不需要身份验证。

这不是我真正想要的!我想衡量的时间,一个网站需要加载!我不想使用网络视图或类似的东西!将它加载到一个流中,测量它所需的时间就足够了!但是yee,它可以工作,但只是第一次,如果我下次再启动它,所需的时间要少得多,因为我认为它使用了缓存或其他东西!但是我不知道如何停止缓存……好吧,下载整个页面唯一明智的做法是使用WebView,它似乎没有禁用缓存的选项(或者更确切地说,我没有看到)。使用HttpWebRequest可以很容易地避免缓存,但实际上无法为任意页面下载整个页面。如果控制正在加载的页面,则可以将其配置为请求浏览器不缓存该页面。最后—也许WebView.InvokeScript可以允许您发出一些阻止缓存的请求,但我对JavaScript了解不够,无法在这方面帮助您。