我正在尝试创建一个自定义消息处理程序,该处理程序将Authorization
标头添加到由HttpClient
. 为了计算此标头的值,请求的路径(包括查询参数)必须与请求的主体(内容类型必须为application/x-www-form-urlencoded
)连接。
由于我的用例对延迟非常敏感,我想知道下面的代码是否是最有效/最快的方法?或者可以改进吗?特别是,有没有更好的替代方法ReadAsStringAsync
来获取表单数据?
class AuthorizationHandler : DelegatingHandler
{
protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
var path = request.RequestUri.PathAndQuery;
var content = await request.Content.ReadAsStringAsync(cancellationToken);
// TODO: create "Authorization" header
return await base.SendAsync(request, cancellationToken);
}
}