0

我想像这样使用 HttpClient 加载 Kepler 参考页面:

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 等...

4

1 回答 1

0

仅下载第一段 html 很少足以为您提供页面的所有元素,即使您对其进行解析并包含所有链接的图像等。还有 css 和 javascript 可以在查看时带来新内容您在浏览器中打开一个页面并自己获取所有这些内容将类似于实现您自己的浏览器。您最好的选择是在 WebView 控件中加载页面一次并让它缓存其内容,或者使用 WebView 并扫描 DOM 以尝试获取所有元素。您还可以编写一个 Web 服务,为您下载该页面并为您提供整个软件包……假设该页面不需要身份验证。

于 2012-11-26T16:30:03.457 回答