Come scaricare una pagina web in MetroStyle app (WinRT) e C #
-
22-10-2019 - |
Domanda
Sto creando un app MetroStyle e voglio utilizzare un'API sito web che si basa sui metodi HTTP GET. Ad esempio per il login devo scaricare il codice XML restituito da questo URL:
websitehost.com/api/login.php?u=username&p=password
Il problema è che le nuove applicazioni MetroStyle non mi permette di utilizzare molti dei metodi che ho usato per anni in .Net così come posso scaricare il documento XML restituito e analizzarlo?
Soluzione
Si potrebbe essere alla ricerca di questo:
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();
}
Altri suggerimenti
È possibile utilizzare il metodo Windows.Data.Xml.Dom.XmlDocument.LoadFromUriAsync(Uri)
per acquisire automaticamente e analizzare il codice XML, oppure si potrebbe utilizzare manualmente un Windows.Networking.BackgroundTransfer.DownloadOperation
esempio per chiamare il servizio web e acquisire i dati, e Windows.Data.Xml.Dom.XmlDocument.LoadXml(string)
per analizzare i dati.
Si dovrebbe essere in grado di utilizzare
var data = await (new System.Net.Http.HttpClient()).GetAsync(new Uri("http://wherever"));
E poi fare quello che serve con i dati, inclusi il caricamento con XmlDocument o XElement o roba del genere.