2017-02-17 98 views
0

我得到了我的HttpWebResponse對象的一個​​問題在我的Task<T>Xamarin.Forms HttpWebResponse掛起/凍結

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 ""; 
} 

我有一些Debug.WriteLine()的是在這裏很容易看到我的代碼獲取到什麼部分。

我可以看到的Debug.WriteLine($ 「正在檢查5000」);
我看不到的Debug.WriteLine($ 「正在檢查10000」);

我可以訪問的網站在瀏覽器很好,所以我不知道這裏的問題。

我能做些什麼,看看它爲什麼不工作,然後解決它?

回答

3

試試這個

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

感謝修復 - 抱歉,不能回答越早。有:-) –

+0

睡覺只是一個快速的提示,你不應該創建一個你做一個網絡請求,每次HttpClient的,這裏更多信息https://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/ –

相關問題