我已經向Azure發佈了一個非常基本的asp.net web api代碼,該代碼隨模板一起提供。當我嘗試默認的GET操作時,我得到JSON響應["value1","value2"]
從Android應用程序調用Azure Web API只是等待響應時掛起
當我嘗試從我的xamarin-android項目進行相同的調用時,執行只是在等待響應時永遠掛起(請參閱下面的代碼)。
我使用visual studio 2015.我連接手機進行調試。
button.Click += onButtonClick;
}
private void onButtonClick(object sender, EventArgs e)
{
GetValuesSync().Wait();
}
private async Task GetValuesSync()
{
string ResponseJsonString = null;
string url =
"http://myWebapp.azurewebsites.net/api/values";
using (var httpClient = new HttpClient())
{
try
{
Task<HttpResponseMessage> getResponse = httpClient.GetAsync(url);
HttpResponseMessage response = await getResponse; //Execution hangs here forever ...
ResponseJsonString = await response.Content.ReadAsStringAsync();
values = JsonConvert.DeserializeObject<string[]>(ResponseJsonString);
}
catch (Exception ex)
{
throw;
}
}
}
感謝您的幫助
這裏有死鎖'GetValuesSync()。Wait();'。 –
@ Richard77:我推薦閱讀我的[關於異步最佳實踐的MSDN文章](https://msdn.microsoft.com/en-us/magazine/jj991977.aspx)和我的博客文章[不要阻止異步代碼] (http://blog.stephencleary.com/2012/07/dont-block-on-async-code.html)。 –