我以为我可以直接做到,但也许我的设置有问题?我正在尝试在我的应用程序中下载一个用于登录的字符串:
private async void DoLogin()
{
HttpClient client = new HttpClient();
string response = await client.GetStringAsync(Config.SERVER_URL + "/Login/");
删除所有逻辑,我将添加标题等等,但VS2012将不允许我等待该响应。
我尝试按照代码from here,但在我的情况下,我只获得Cannot await 'System.Threading.Tasks.Task<string'
。
为什么?不应该GetStringAsync
只给我一个字符串吗?它返回Task<string>
,但是我必须将其包装在方法中吗?
答案 0 :(得分:4)
你的代码非常好。但是:要在async / await
中使用portable class libaries
,您需要将NuGet包Microsoft.Bcl.Async
添加到项目中。
另请注意Servy的评论,使用返回类型Task
代替void
。