【发布时间】:2021-11-25 18:57:20
【问题描述】:
当我调用添加“await”关键字并在删除“await”关键字时得到输出时出现此错误
代码:
public class ApiHelper : IApiHelper
{
private const int APiRetryCount = 4;
private static HttpClient client = new HttpClient();
public async Task<string> PostAsync<T>(T payload, string apiEndpoint)
{
for (int i = 0; i < APiRetryCount; i++)
{
client.DefaultRequestHeaders.Accept.Clear();
client.BaseAddress = new Uri("http://app-et-csswrapperapi-dev.azurewebsites.net/");
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Bearer " + token.AccessToken);
var content = new StringContent(JsonConvert.SerializeObject(payload), Encoding.UTF8, "application/json");
var response = **await** client.PostAsync(apiEndpoint, content);
}
// if we got here, we have maxed out retry count and got transient failures or are not authorized
// log warning
return default(string);
}
}
我遇到了异常: Sys.WebForms.PageRequestManagerTimeoutException: Sys.WebForms.PageRequestManagerTimeoutException: 服务器请求超时
但是当我换行时
var response = **await** client.PostAsync(apiEndpoint, content);
使用下面的代码,它的工作正常:
var response = client.PostAsync(apiEndpoint, content).Result;
我怀疑 await 和 .Result() 之间有什么区别??
【问题讨论】:
标签: c# api asp.net-core asp.net-web-api async-await