如何解决授权标头未持久存在于HttpClient和HttpRequestMessage中
我在C#中的HTTP请求具有一个Authorization Header令牌,该令牌未持久到我的本地Django服务器。
这是我的API调用:
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage
{
RequestUri = new Uri("http://localhost:8000/api/get_data?id=1234"),Method = HttpMethod.Get,Headers =
{
{ HttpRequestHeader.Authorization.ToString(),"Bearer c8ac29161b685931b444f116377ce251c0217580"},{ HttpRequestHeader.ContentType.ToString(),"application/json" }
}
};
HttpResponseMessage response = client.SendAsync(request).Result;
然后,我尝试在向客户端或响应添加授权令牌之间进行以下更改:
client.DefaultRequestHeaders.Add("Authorization","Bearer c8ac29161b685931b444f116377ce251c0217580");
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer","c8ac29161b685931b444f116377ce251c0217580");
request.Headers.Add("Authorization","Bearer c8ac29161b685931b444f116377ce251c0217580");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer c8ac29161b685931b444f116377ce251c0217580","Authentication");
在服务器端(Django 1.11),request.META显示主机和内容类型已通过,但HTTP_AUTHORIZATION未通过:
'HTTP_HOST': 'localhost:8000','HTTP_CONTENTTYPE': 'application/json',
我能够向请求添加自定义标头:
request.Headers.Add("blah","Bearer c8ac29161b685931b444f116377ce251c0217580");
并查看服务器端请求的输出:
'HTTP_BLAH': 'Bearer c8ac29161b685931b444f116377ce251c0217580',
似乎C#已经控制了Authorization标头。
我能够通过将令牌作为参数添加到url中来获得解决方法,但我想了解发生了什么或做错了什么。
有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。