C# 如何从web、windows应用商店应用下载文件
我试图做的是通过html进入这个()循环,查找href。一旦找到一个#,它将在#之前使用href url。然后在#之前从该url下载文件。现在,下面的代码完成了下载之前的所有工作。现在我如何从url t下载文件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
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);