如何解决C# DelegatingHandler 再次调用 Task
这是我的委托处理程序代码:
public class MyHandler: DelegatingHandler
{
public MyHandler(HttpMessageHandler innerHandler) : base(innerHandler) { }
public IDataStore<Object> DataStore => DependencyService.Get<IDataStore<Object>>();
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request,CancellationToken cancellationToken)
{
HttpResponseMessage response = new HttpResponseMessage();
response = await base.SendAsync(request,cancellationToken);
int status_code = (int)response.StatusCode;
if (response.IsSuccessstatusCode)
{
return response;
}
else if (status_code == 401 || status_code == 403)
{
try
{
var response_token = await DataStore.Updatetoken();
if (response_token)
{
response = await base.SendAsync(request,cancellationToken);
}
else
{
await Application.Current.MainPage.displayAlert("",AppResources.SERVER_ERROR,AppResources.BTNOK);
await Application.Current.MainPage.Navigation.PushAsync(new MainMenu());
}
}
catch (AggregateException ae)
{
foreach (Exception e in ae.InnerExceptions)
{
if (e is TaskCanceledException)
Console.WriteLine("Unable to compute mean: {0}",((TaskCanceledException)e).Message);
else
Console.WriteLine("Exception: " + e.GetType().Name);
}
}
finally
{
}
}
return response;
}
}
当我通过更新令牌获得真实信息时,我需要调用同一个未经授权的 async Task
。在这种情况下,我在 public async Task<Patient> PatientValidation
上获得 401 状态,但还有更多任务可以生成此状态。所以我只想再次调用同一个任务,用户不应该知道发生了这种情况并且他得到了新的令牌。此代码 response = await base.SendAsync(request,cancellationToken);
不能解决我的问题。
知道如何解决这个问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。