使用 HttpClient,发送一个没有模式的授权令牌
Using HttpClient, send an Authorization token with no schema
注意:此问题与this one类似,但其建议答案不适用于此处。
我正在尝试访问 this API,它正在寻找如下所示的 header:
Authorization: {token}
注意没有任何身份验证方案。
我试过:
myHttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("", authToken);
这导致出现 ArgumentException,提示我无法传递空字符串。
我也都试过了:
myHttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(authToken);
和
myHttpClient.DefaultRequestHeaders.Add("Authorization", authToken);
两者都会导致 FormatException。
似乎有什么东西迫使我遵守我的授权标准格式header,但我尝试访问的服务不使用该标准格式。
你可以试试:
request.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", token));
如https://msdn.microsoft.com/en-us/library/hh875106(v=vs.118).aspx
所述
就像经常发生的那样,在我提出问题后我就找到了答案。
HttpClinet 要求我使用的标准格式是 Http 协议本身,它需要一个身份验证方案,但是有一个 work-around。
而不是:
myHttpClient.DefaultRequestHeaders.Add("Authorization", authToken);
您可以使用:
myHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", authToken);
忽略 Http 标准,只允许您根据需要添加 header。
注意:此问题与this one类似,但其建议答案不适用于此处。
我正在尝试访问 this API,它正在寻找如下所示的 header:
Authorization: {token}
注意没有任何身份验证方案。
我试过:
myHttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("", authToken);
这导致出现 ArgumentException,提示我无法传递空字符串。
我也都试过了:
myHttpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(authToken);
和
myHttpClient.DefaultRequestHeaders.Add("Authorization", authToken);
两者都会导致 FormatException。
似乎有什么东西迫使我遵守我的授权标准格式header,但我尝试访问的服务不使用该标准格式。
你可以试试:
request.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", token));
如https://msdn.microsoft.com/en-us/library/hh875106(v=vs.118).aspx
所述就像经常发生的那样,在我提出问题后我就找到了答案。
HttpClinet 要求我使用的标准格式是 Http 协议本身,它需要一个身份验证方案,但是有一个 work-around。
而不是:
myHttpClient.DefaultRequestHeaders.Add("Authorization", authToken);
您可以使用:
myHttpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", authToken);
忽略 Http 标准,只允许您根据需要添加 header。