我使用HttpClient从我的API接收数据。 API始终返回数据,但客户端(UWP)会不时从服务器获取答案。根据我的测试,我想,它取决于答案的大小(模型包含4个字段:1个guid和4个字符串字段),错误我在返回列表中捕获了73个记录。
这是我的API方法:
public async Task<HttpResponseMessage> GetClassList()
{
...
IEnumerable<Class> classList = await _profileService.GetClasses();
IEnumerable<ClassViewModel> vm = classList.Select(e => new ClassViewModel(e));
var response = Request.CreateResponse(HttpStatusCode.OK, vm );
return response;
...
}
调用API的UWP代码:
try
{
using(HttpClient client = new HttpClient())
{
string str = "http://address/api/v2/GetClassList";
HttpResponseMessage answer = await client.GetAsync(str);
string response = await answer.Content.ReadAsStringAsync();
result = JsonConvert.DeserializeObject<T>(response);
}
}
catch(Exception ex)
{
}
HttpClient的默认超时= 01:40,5分钟后捕获异常:
System.OperationCanceledException:操作已取消。 消息=“操作已取消。
堆栈跟踪:
at System.Net.Http.HttpClient.<FinishSendAsync>d__58.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
它可能依赖于异步调用吗?怎么处理?我做错了什么? 我会很高兴听到任何想法。提前谢谢。