如何下载MetroStyle应用程序(WinRT)和C#中的网页
我正在创建一个MetroStyle应用程序,我想使用基于HTTP Get方法的网站API。比如登录我应该下载这个URL返回的XML:如何下载MetroStyle应用程序(WinRT)和C#中的网页
websitehost.com/api/login.php?u=username&p=password
的问题是,新的MetroStyle应用程序不会让我使用了许多我在多年使用方法.net,那么我怎样才能下载返回的XML文档并解析它?
你可能会寻找这样的:
public async Task<string> DownloadPageStringAsync(string url)
{
HttpClientHandler handler = new HttpClientHandler()
{ UseDefaultCredentials = true, AllowAutoRedirect = true };
HttpClient client = new HttpClient(handler);
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
return await response.Content.ReadAsStringAsync();
}
是的,这是我用过的代码,它能正常工作。我已经发布了这个地方,但我似乎无法找到链接。谢谢回复。由于我已经测试过了,我会将其设置为答案。 –
您可以使用Windows.Data.Xml.Dom.XmlDocument.LoadFromUriAsync(Uri)
方法自动获取并解析XML,也可以手动使用Windows.Networking.BackgroundTransfer.DownloadOperation
实例调用Web服务并获取数据,使用Windows.Data.Xml.Dom.XmlDocument.LoadXml(string)
解析数据。
您能否解释一下我如何使用'DownloadOperation'? –
我很想看看如何下载XML文件以外的文件。 –
没有太多的例子,但我可以冒险猜测你可以通过调用['BackgroundDownloader.StartDownloadAsync(Uri,IStorageFile)'](http://msdn.microsoft.com/zh-cn/library/default.aspx)来获得'DownloadOperation'的实例。 COM/EN-US /库/窗/应用/ windows.networking.backgroundtransfer.backgrounddownloader.startdownloadasync)。 –
您应该能够使用
var data = await (new System.Net.Http.HttpClient()).GetAsync(new Uri("http://wherever"));
然后做任何你需要的数据,包括与XmlDocument的或的XElement或诸如此类的东西加载它。
哇,这是一个不好的API。 –
好吧,我简化了它,但它基本上是这样的。 –
您不应该通过网址传递用户名和密码。 – McKay