C# 如何从web、windows应用商店应用下载文件

C# 如何从web、windows应用商店应用下载文件,c#,windows-runtime,windows-store-apps,html-agility-pack,C#,Windows Runtime,Windows Store Apps,Html Agility Pack,我试图做的是通过html进入这个()循环,查找href。一旦找到一个#,它将在#之前使用href url。然后在#之前从该url下载文件。现在,下面的代码完成了下载之前的所有工作。现在我如何从url t下载文件 public async void songsLoad() { var messageDialog = new MessageDialog("1"); await messageDialog.ShowAsync(); //use H

我试图做的是通过html进入这个()循环,查找href。一旦找到一个#,它将在#之前使用href url。然后在#之前从该url下载文件。现在,下面的代码完成了下载之前的所有工作。现在我如何从url t下载文件

public async void songsLoad()
    {
        var messageDialog = new MessageDialog("1");
        await messageDialog.ShowAsync();
        //use HAP's HtmlWeb instead of WebClient
        var htmlweb = new HtmlWeb();
        // load HtmlDocument from web URL
        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc = await htmlweb.LoadFromWebAsync("http://www.dubstep.net/track/5439");
        int i = 0;
        List<string> list = new List<string>();
        //use LINQ API to select all `<a>` having `href` attribute
        var links = doc.DocumentNode
                       .DescendantsAndSelf("a")
                       .Where(o => o.GetAttributeValue("href", null) != null);
        foreach (HtmlNode link in links)
        {

            HtmlAttribute href = link.Attributes["href"];
            if (href != null)
            {
                list.Add(href.Value);
                i++;
                if (href.Value == "#")
                {
                    int t = i - 2;
                    Uri test = new Uri(list[t]);
                    start(test);
                }
            }
        }
    }

我通常使用的方法是使用一个可能有点过分,但是对于一个简单的html文件,您可以下载一个字符串-只需调用

string htmlString = await new HttpClient().GetStringAsync(uri);

…然后您应该能够使用类似于
htmlDocument.load(htmlString)的内容加载它

你是说
LoadFromWebAsync()
不起作用吗?如果不起作用,你可以试试普通的
HttpClient
@Filipskaun no,但你能举个例子说明如何使用它吗?另外,我将查看httpclientIt似乎您已经尝试在代码中使用它,所以我询问它是否有效。@FilipSkakun如果您谈论myWebClient.DownloadFileAsync(t,“file.mp3”);那么不,这在windows应用商店应用程序中不起作用。但是有一个htmlweb.LoadFromWebAsync,但我不知道如何使用它
string htmlString = await new HttpClient().GetStringAsync(uri);