Je reçois 403 avec HttpClient sur la bibliothèque de classes portable

J’ai des projets PCL, WP et WinStore. Dans le projet PCL, j’ai une classe avec cette méthode:

private async Task GetIpAddress() { const ssortingng url = "http://www.ip-adress.com/"; const ssortingng buscar = "

Your IP address is:"; var client = new HttpClient(); var data = await client.GetSsortingngAsync(url); if (data.IndexOf(buscar, SsortingngComparison.Ordinal) <= -1) return; var IpAddress = data.Remove(0, data.IndexOf(buscar, StringComparison.Ordinal) + buscar.Length + 1); IpAddress = IpAddress.Remove(IpAddress.IndexOf("

", SsortingngComparison.Ordinal)); return IpAddress; }

Lorsque j’appelle la méthode sur le projet Windows Phone fonctionne parfaitement, mais pas dans le projet Windows Store. Au lieu de cela, je reçois ce message d’erreur:

Message 403

Il semble que vous ayez besoin de références et que vous pointiez plutôt sur l’API, c’est pourquoi son “Forbiden”

Essayez de l’appeler comme un navigateur: à partir de cette autre question ” Demande HttpClient comme navigateur ”

 void Main() { GetIP("http://www.ip-adress.com/"); } async void GetIP(ssortingng url){ try{ "Looking Up".Dump("OK"); var x = await GetResponse(url); x.Dump(); } catch(Exception e){ e.Dump("Problems:"); } } private static async Task GetResponse(ssortingng url) { var httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/html,application/xhtml+xml,application/xml"); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Encoding", "gzip, deflate"); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0"); httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept-Charset", "ISO-8859-1"); var response = await httpClient.GetAsync(new Uri(url)); response.EnsureSuccessStatusCode(); using (var responseStream = await response.Content.ReadAsStreamAsync()) //using (var decompressedStream = new System.IO.Compression.GZipStream(responseStream, CompressionMode.Decompress)) using (var streamReader = new StreamReader(responseStream)) { return streamReader.ReadToEnd(); } } 

// Note: j’ai commenté la compression,