2016-01-18 78 views
-1

需要一點幫助在這裏,當我的代碼進入到下面的代碼行的WebAPI不被從Windows 10應用程序調用BackgroundTask

VAR的結果=等待_httpClient.GetAsync(BASE_URI);

它被絞死,可能的原因是什麼。這實際上是WebApi調用,在從BackgroundTask調用系統時系統被掛起。有什麼想法嗎? 以下是完整的代碼。

namespace POSBackgroundTasks 
{ 

    public sealed class LoadDataTask : IBackgroundTask 

    { 

     static List<Product> Products; 

     public void Run(IBackgroundTaskInstance taskInstance) 

     { 

      BackgroundTaskDeferral deferal = taskInstance.GetDeferral();   
      FillProducts(); 
      deferal.Complete(); 
     } 

     async void FillProducts() 
     { 

      string BASE_URI = "https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/"; 
      HttpClient _httpClient; 
      _httpClient = new HttpClient(); 
      _httpClient.DefaultRequestHeaders.Add("Accept", "application/json"); 
      BASE_URI = BASE_URI + "GetAll"; 
      var result = await _httpClient.GetAsync(BASE_URI); 
      var productsJson = await result.Content.ReadAsStringAsync();    
     } 
    } 
} 
+0

您發佈的網址無法使用。如果您使用[Fiddler](http://www.telerik.com/fiddler)或[Postman](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en),它會起作用嗎? – Win

+1

首先,不建議使用Async/Await和「返回void」。試着強迫等​​待迴應。 'var result = _httpClient.GetAsync(BASE_URI).Result;' –

+0

完整的URL在下面,它的工作正常。事實上,當我從移動應用程序主線程調用它時,我共享的代碼工作正常。但是當我從後臺任務調用它時,它會被掛起。 https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/getall –

回答

0

你FillProducts方法應該是這樣的:

async void FillProducts() 
{ 
    string BASE_URI = "https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/"; 
    using (HttpClient httpClient = new HttpClient(BASE_URI)) 
    { 
     httpClient.DefaultRequestHeaders.Add("Accept", "application/json"); 
     var result = await _httpClient.GetAsync("GetAll"); 
     var productsJson = await result.Content.ReadAsStringAsync();    
    } 
} 

您需要的基本URL傳遞給HttpClient的構造和動作名稱爲GetAsync參數。如果這個掛起,那麼你的問題是在Web服務的結束,而不是你的代碼。還請注意使用using聲明處置HttpClient

+0

API的完整網址位於下方,它的工作正常。事實上,當我從移動應用程序主線程調用它時,我共享的代碼工作正常。但是當我從後臺任務調用它時,它會被掛起。 dposapi.azurewebsites.net/DPosApi/v1/Configurations/getall –

相關問題