Flurl:处理 401 响应后自动重试 http 调用

问题描述

使用 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