【发布时间】:2015-02-13 15:30:34
【问题描述】:
我在 .NET Http 客户端上使用 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() 之后似乎不再发送标头。
这是设计使然吗?有没有更好的方法来确保在每个请求上发送这些标头?
【问题讨论】:
标签: portable-class-library dotnet-httpclient flurl