问题描述
使用 Flurl,我正在尝试实现一个优雅的解决方案来处理多个 API 的 401 响应。
我可以使用以下方法捕获 HTTP 异常:
FlurlHttp.GlobalSettings.OnError = MyFlurlErrorHandler;
然后:
private void MyFlurlErrorHandler(HttpCall httpCall)
{
if (httpCall.HttpStatus == System.Net.HttpStatusCode.Unauthorized) //401
{
//some code here will refresh our access token to take care of the 401 error
//SESSION MANAGEMENT HERE
httpCall.ExceptionHandled = true
}
}
一旦错误处理完毕,如何在设置ExceptionHandled = true之前自动重试这里原来的httpCall?
解决方法
Flurl 没有内置的重试功能,尽管它在路线图上。在那之前我推荐using Polly。