2017-02-17 1 views
0

j'ai eu un problème avec mon objet HttpWebResponse dans mon Task<T>Xamarin.Forms HttpWebResponse Hangs/Gèle

public async Task<string> Get(string url) 
{ 
    using (var client = new HttpClient()) 
    { 
     client.BaseAddress = new Uri(urlAddress); 
     WebRequest request = WebRequest.Create(url); 

     Debug.WriteLine($"CHECKING 5000"); 

     using (var resp = (HttpWebResponse)await request.GetResponseAsync() as HttpWebResponse) 
     { 
      Debug.WriteLine($"CHECKING 10000"); 

      if (resp.StatusCode == HttpStatusCode.OK) 
      { 
       //var json = await result.Content.ReadAsStringAsync(); 
       //status = JsonConvert.DeserializeObject<MyResultObject>(json); 

       Debug.WriteLine($"CHECKING = {resp.StatusCode}"); 
      } 
     } 
    } 

    return ""; 
} 

J'ai un certain nombre de Debug.WriteLine() « s est ici pour voir facilement quelle partie mon code arrive à. Je peux voir Debug.WriteLine ($ "CHECKING 5000");
Je ne peux pas voir Debug.WriteLine ($ "CHECKING 10000");

Je peux accéder au site Web dans un navigateur bien, donc je ne suis pas sûr de ce que le problème ici.

Que puis-je faire pour voir pourquoi cela ne fonctionne pas, puis le réparer?

Répondre

3

Essayez cette

public async Task<string> Get(string url) 
{ 

    Debug.WriteLine($"CHECKING 5000"); 

    using (var client = new HttpClient()) 
    { 
     Debug.WriteLine($"CHECKING 10000"); 

     var resp = await client.GetAsync (url); 

     //you can replace the if below with response.IsSuccessStatusCode 
     if (resp.StatusCode == HttpStatusCode.OK) 
     { 
      Debug.WriteLine($"CHECKING = {resp.StatusCode}"); 
     } 

    } 

    return String.Empty; 
} 
+0

merci pour le correctif - désolé ne pouvait pas répondre plus tôt. A dû dormir :-) –

+0

Juste un conseil rapide, vous ne devriez pas créer un HttpClient chaque fois que vous faites une demande de Web, plus d'information ici https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/ –