我查看了多篇有关此问题的帖子,但我看到的解决方案似乎都不适合我的情况。
var request = new HttpRequestMessage(HttpMethod.Post, _Endpoint);
request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("APIToken", _apiKey);
//request.Headers.Add("Authorization APIToken", _apiKey);
request.Content = new StringContent(JsonSerializer.Serialize(contacts))
{
Headers =
{
ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json")
}
};
using (var response = await _client.SendAsync(request))
{
var readstring = response.Content.ReadAsStringAsync().Result;
...
}
request.Headers.Add 被注释掉了,因为我最初尝试这样做。
我在创建_client时还设置了DefaultRequestHeader
_client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("APIToken", _apiKey);
它在 Postman 中运行,标头参数设置为: 授权:APIToken [APIKey]
当我在调用 SendAsync 之前设置断点时,我可以看到为 Authorization 标题加载了正确的值。
但是我从服务器收到错误消息,显示“未提供身份验证凭据”。如果我在 Postman 中输入错误的 APIKey,则会返回一条不同的消息,告诉我它没有发送错误的凭据,它根本没有发送授权标头。
您是否在内容中设置其他标题?也许错误是这样来的