我正在尝试重用我的 HttpClient 实例,因为这是最佳实践。因此,在一个特定的请求中,我想在请求上设置 Authorization header ,而不是在客户端上全局设置它。从我读过的所有内容来看,这应该有效:

var request = new HttpRequestMessage(HttpMethod.Get, url);
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);
var response = await _client.SendAsync(request);

这会编译,但是当我尝试调用它时会抛出。我得到的异常(exception)是:



我很困惑为什么我允许在请求消息上设置这个值,如果它只是要抛出,我也没有想出解决方法。
我已经尝试使用 TryAddWithoutValidation 直接添加标题,但我仍然遇到相同的异常(甚至没有像我期望的那样返回 false!)

我怀疑这可能是框架中的一个错误,因为很多人已经发布了这个没有明显问题的确切代码,但会对任何见解/解决方法感兴趣。

最佳答案

事实证明,由于不同的错误,“ token ”的值为空。如果您遇到此问题,我建议您先检查一下:请注意,错误消息 100% 是谎言。

关于c# - HttpRequestMessage 不允许 Authorization header 值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52744997/

10-12 01:35