私は .NET Http Client で Furl.Http ラッパーを使用しています。各リクエストで、私の API は User-Agent と Authorization ヘッダーを送信する必要があります。
毎回言うのではなく、一度設定したいと思います。
私ができると思ったのは、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()
、ヘッダーが送信されなくなった後に表示されます。
これは設計によるものですか?これらのヘッダーが各リクエストで送信されることを保証するためのより良い方法はありますか?