Cómo descargar una página web en la aplicación Metrostyle (WinRT) y C#
-
22-10-2019 - |
Pregunta
Estoy creando una aplicación MetroStyle y quiero usar una API de sitio web basada en los métodos HTTP GET. Por ejemplo, para iniciar sesión, debería descargar el XML devuelto por esta URL:
websitehost.com/api/login.php?u=username&p=password
El problema es que las nuevas aplicaciones de MetroStyle no me permiten usar muchos de los métodos que he estado usando durante años en .NET, entonces, ¿cómo puedo descargar el documento XML devuelto y analizarlo?
Solución
Es posible que esté buscando esto:
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();
}
Otros consejos
Puedes usar o Windows.Data.Xml.Dom.XmlDocument.LoadFromUriAsync(Uri)
método para adquirir y analizar automáticamente el XML, o podría usar manualmente un Windows.Networking.BackgroundTransfer.DownloadOperation
instancia para llamar al servicio web y adquirir los datos y Windows.Data.Xml.Dom.XmlDocument.LoadXml(string)
para analizar los datos.
Deberías poder usar
var data = await (new System.Net.Http.HttpClient()).GetAsync(new Uri("http://wherever"));
Y luego haga lo que necesite con los datos, incluida la carga con XMLDocument o Xelement o otras cosas.