Comment télécharger une page Web dans l'application metrostyle (WinRT) et C #
-
22-10-2019 - |
Question
Je crée une application metrostyle et je veux utiliser une API de site Web qui est basée sur le HTTP Get méthodes. Par exemple, pour vous connecter je télécharger le code XML retourné par cette URL:
websitehost.com/api/login.php?u=username&p=password
Le problème est que les nouvelles applications metrostyle ne me laisse pas d'utiliser plusieurs des méthodes que j'ai utilisé pendant des années dans .Net alors comment puis-je télécharger le document XML retourné et l'analyser?
La solution
Vous pourriez être à la recherche ceci:
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();
}
Autres conseils
Vous pouvez utiliser la méthode Windows.Data.Xml.Dom.XmlDocument.LoadFromUriAsync(Uri)
acquérir automatiquement et analyser le XML, ou vous pouvez utiliser manuellement un Windows.Networking.BackgroundTransfer.DownloadOperation
par exemple pour appeler le service Web et d'acquérir les données, et Windows.Data.Xml.Dom.XmlDocument.LoadXml(string)
pour analyser les données.
Vous devriez pouvoir utiliser
var data = await (new System.Net.Http.HttpClient()).GetAsync(new Uri("http://wherever"));
Et puis faire tout ce que vous avez besoin avec les données, y compris le chargement avec XmlDocument ou XElement ou tout le reste.