对于使用 Refit 处理 REST API 的 WPF .net core 3.1 应用程序,我需要以下代码的帮助。我正在尝试从响应标头中获取 AuthToken 的值。但我找不到拥有 AuthorizationHeaderValueGetter 值的属性。
我确实看到了一些与此问题相关的错误 - https://github.com/reactiveui/refit/issues/689。据称已在 .net core 3.1 版本中修复。但我还没有能够检索到响应头。
应用程序.xaml.cs
private void ConfigureServices(IConfiguration configuration, IServiceCollection services)
{
services.AddRefitClient<IService>(new RefitSettings()
{
AuthorizationHeaderValueGetter = () => Task.FromResult("AuthToken")
})
.ConfigureHttpClient(c => c.BaseAddress = new
Uri(Configuration.GetSection("MyConfig:GatewayService").Value));
}
IService.cs 接口 IService 已定义如下:
[Headers("Content-Type: application/json")]
public interface IService
{
[Post("/v1/Authtoken/")]
public Task<string> Authenticate([Body] Authenticate payload);
}
我在我的 ViewModel (WPF) 中注入 IService 并尝试获取应该设置的“AuthToken”标头的值。
视图模型
public class SomeViewModel: ISomeViewModel
{
public SomeViewModel(IService service)
{
this.Service = service;
}
public async Task<Tuple<bool, string>> Somemethod()
{
var authResponse = await Service.Authenticate(authPayload);
.......
}
}