【问题标题】:How to read html from a webpage using Xamarin.Forms如何使用 Xamarin.Forms 从网页中读取 html
【发布时间】:2015-01-30 00:22:16
【问题描述】:

所以我已经尝试了几个小时来让它工作......

我制作了一个 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 添加了 async/await 支持。 Microsoft.Net.Http,它将 HttpClient 支持添加到 PCL。

【问题讨论】:

  • 方法签名应该是Task。是任务还是只是网站的格式问题?
  • 不,只是它什么都没有回来,我想要页面中的 html.. 但它给了我一个空字符串
  • 使用依赖服务解决了这个问题

标签: c# .net xamarin xamarin.forms


【解决方案1】:

你能试试这个,看看它是否会引发任何类型的异常?我在设备上进行了测试,它似乎工作得很好。

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

【讨论】:

  • 对我来说是否显示网页的 HTML?它仍然只是显示一个空白
  • 你在代理后面吗?
  • 一切似乎都很好。您确定您已提供所有权限吗?
猜你喜欢
  • 2022-11-20
  • 2021-06-22
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-26
  • 2012-06-07
  • 2015-02-28
相关资源
最近更新 更多