在我的c#控制台应用程序中,我有一个async
任务。我想在运行任务时从中返回string
。我编写它的方式出了问题。
错误讯息:
'await'运算符只能在异步方法中使用。考虑 使用'async'修饰符标记此方法并更改其方法 将类型返回“任务”。
以下是代码:
static void Main(string[] args)
{
string t1 = await DownloadToken(webserverLocal, tokenLocal);
}
static async Task<string> DownloadToken(string server, string token)
{
using (var client = new HttpClient())
{
var url = server + "token";
var parameters = new Dictionary<string, string> { { "username", usernameMain }, { "password", passwordMain }, { "grant_type", "password" } };
var encodedContent = new FormUrlEncodedContent(parameters);
var response = await client.PostAsync(url, encodedContent).ConfigureAwait(false);
if (response.StatusCode == HttpStatusCode.OK)
{
string content = await response.Content.ReadAsStringAsync();
JToken entireJson = JToken.Parse(content);
JProperty jName = entireJson.First.Value<JProperty>();
if (jName.Name == "access_token")
{
return jName.Value.ToString();
}
}
else
{
System.Windows.Forms.MessageBox.Show("ERROR: DownloadToken FAILED!!!", "ERROR");
Environment.Exit(0);
}
}
return null;
}
其他相似的帖子似乎没有将字符串返回给main方法。