我按以下方式设置HttpClient
的授权标头:
httpClient
.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(null, "abc");
......但我得到了例外:
AuthenticationHeaderValue的“scheme”不能为空。
为什么AuthenticationHeaderValue
必须有一个计划?这是否需要特定的RFC?
答案 0 :(得分:11)
该方案用于确定您正在使用的身份验证类型:
标题如下所示:
{
"key": "Authorization",
"value": "<scheme> <parameter>"
}
尝试使用Postman根据HTTP支持的不同类型的身份验证查看生成的内容。
答案 1 :(得分:1)
有时您不能使用方案设置Authorization标头。我现在正在研究的一个项目也是如此。我需要从TOPdesk连接到API,但是未指定任何方案。
TOPdesk的Authorization标头必须具有类似TOKEN id="0d1739df-8952-41c0-94cd-b25287446b22"
的值,因此我不能使用方案。我像下面的示例一样通过添加Authorization标头解决了该问题,并且它的工作原理像一个超级按钮。
client.DefaultRequestHeaders.Add("Authorization", $"TOKEN id=\"{_token}\"");
我知道这是一个老问题,但我认为将来可能有人会看这个答案并觉得有用。我以同样的方式遇到了这个问题。