C# 使用Polly refresh token恢复轻松';行不通

C# 使用Polly refresh token恢复轻松';行不通,c#,polly,authorize,C#,Polly,Authorize,我真的需要一些帮助来理解我的重新授权政策有什么错 我的政策是这样的: var policy = Policy .HandleResult<HttpResponseMessage>(message => message.StatusCode == HttpStatusCode.Unauthorized) .RetryAsync(1, async (result, retryCount) => {

我真的需要一些帮助来理解我的重新授权政策有什么错

我的政策是这样的:

var policy = Policy
            .HandleResult<HttpResponseMessage>(message => message.StatusCode == HttpStatusCode.Unauthorized)
            .RetryAsync(1, async (result, retryCount) =>
            {
                await _authorizeService.RefreshAccessToken();
                RestEaseClient.Token = _authorizeService.AccessToken;
            });
public interface IRestEaseClient
{        
    [Header("X-Token")]
    string Token { get; set; }

    ["root")]
    Task SomeMethod();
    .................
}

当令牌过期时,策略重试函数内的断点被命中,我成功接收新令牌,将其值设置为IRestEaseClient.token标头,但由于某些原因,重试请求使用旧标头值,我仍然得到401。在此之后的下一个请求将正常运行,无需401或点击重新授权策略代码。

答案是HttpRequestMessage已由RestEase构建,RestEase现在已不存在。您可以随意更改RestEaseClient.Token,直到您再次调用SomeMethod来构造新的HttpRequestMessage为止,这不会有任何效果


查看此讨论了解详细信息

请与我们分享消费者方面的信息。