Я использую оболочку Furl.Http поверх .NET Http Client. С каждым запросом мой API требует отправки User-Agent и заголовка авторизации.Как сохранить заголовки в Flurl HttpClient
Я хотел бы установить это один раз, вместо того, чтобы говорить об этом каждый раз.
То, что я думал, что я мог бы сделать, это создать экземпляр FlurlClient и установить заголовки на нем, а затем ResetToRoot перед каждым запросом, как показано в этом примере фрагмент кода:
var fc = new FlurlClient();
fc.WithHeader("User-Agent", "Keep/1.0");
var tokenModel = await
"https://app.tempuri.com".AppendPathSegment("auth")
.WithClient(fc)
.PostUrlEncodedAsync(new { username = "you", password = "secret"})
.ReceiveJson<TokenModel>();
fc.WithHeader("Authorization",
string.Format("Token {0}",tokenModel.Token));
fc.Url.ResetToRoot();
var userModel = await fc.Url
.AppendPathSegment("auth").GetJsonAsync<UserModel>();
Console.WriteLine(userModel.Username);
Однако оказалось, что после RestToRoot()
заголовки больше не отправляются.
Это по дизайну? Есть ли лучший подход к страхованию этих заголовков, отправляемых по каждому запросу?