需要一點幫助在這裏,當我的代碼進入到下面的代碼行的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();
}
}
}
您發佈的網址無法使用。如果您使用[Fiddler](http://www.telerik.com/fiddler)或[Postman](https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=en),它會起作用嗎? – Win
首先,不建議使用Async/Await和「返回void」。試着強迫等待迴應。 'var result = _httpClient.GetAsync(BASE_URI).Result;' –
完整的URL在下面,它的工作正常。事實上,當我從移動應用程序主線程調用它時,我共享的代碼工作正常。但是當我從後臺任務調用它時,它會被掛起。 https://dposapi.azurewebsites.net/DPosApi/v1/Configurations/getall –