如何使用Xamarin.Forms从网页上读取html

时间:2014-12-01 21:39:21

标签: c# .net xamarin xamarin.forms

所以我现在已经尝试了好几个小时才能让它发挥作用......

我做了一个Xamarin Forms PCL项目,我一直在尝试阅读网页的html。

这是我最近的尝试:

//我打电话给网页阅读的方法

async Task<String> GetWebContent() 
   {

        var httpClient = new HttpClient();
        return await httpClient.GetStringAsync ("http://www.google.se");
    }

然后我这样称呼这个方法:

string html = await GetWebContent();
DisplayAlert("alert", html, "ok");

我只是尝试显示网页的html,看它是否有效,但它总是返回空白。有没有人有任何想法如何使这项工作?

我还添加了这两个nugetpackages: Microsoft.Bcl.Async,它为PCL添加了异步/等待支持。 Microsoft.Net.Http,它为PCL添加了HttpClient支持。

1 个答案:

答案 0 :(得分:0)

你可以尝试一下这个,看看它是否会抛出任何类型的异常?我在一台设备上进行了测试,看起来效果很好。

    public static Page GetMainPage()
    {   
        var button = new Button
            {
                Text = "Click to display web page",
                VerticalOptions = LayoutOptions.CenterAndExpand,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
            };

        var page = new ContentPage
        {
            Content = button
        };

        button.Clicked += async (s, e) =>
            {
                try
                {
                    var webPage = await new HttpClient().GetStringAsync(new Uri("http://www.google.se"));
                    await page.DisplayAlert("alert", webPage, "ok", "cancel");
                }
                catch (Exception ex)
                {
                    System.Diagnostics.Debug.WriteLine(ex.Message);
                }
            };



        return page;
    }