[英]ASP.NET Task Async WaitingForActivation
我正在嘗試將發布請求發送到第三方API並檢索UserToken。 這是執行此操作的代碼:
[HttpPost]
private async Task<string> GetUserToken()
{
using (var client = new HttpClient())
{
var parameters = new Dictionary<string, string>
{
{"grant_type", "client_credentials" },
{"client_id", _clientId },
{"client_secret", _clientSecret }
};
var content = new FormUrlEncodedContent(parameters);
var response = await client.PostAsync(_baseUrl, content);
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);
UserTokenModel userToken = JsonConvert.DeserializeObject<UserTokenModel>(responseString);
Console.WriteLine(userToken.access_token);
return userToken.access_token;
}
}
當我在控制台應用程序中對此進行測試時,它會打印出正確的UserToken值。 但是,當我對該方法進行方法調用並在調試器中逐步調試它時,將設置Usertoken的值
var userToken = GetUserToken();
Status: WaitingForActivation
Method:"{null}"
Result:"{Not yet Computed}"
我不太確定為什么會這樣,但是結果是,在其他方法中使用時,該值未設置為正確的值。 任何幫助將不勝感激!
GetUserToken()
不返回用戶令牌。 它返回一個代表異步工作的Task
,其結果是用戶令牌。
本質上,以下代碼:
var userToken = GetUserToken();
...毫無意義。
您真正想要的是:
var userToken = await GetUserToken();
// Do something with the token.
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.