admin管理员组文章数量:1550527
跨服务调用get的接口时,添加了token,仍然提示Response status code does not indicate success: 401 (Unauthorized),经过调试,发现原因是未指定token的认证方式
原代码:
//HttpClient client = new HttpClient(new HttpClientHandler() { UseCookies = false });
if (header != null)
{
//client.DefaultRequestHeaders.Clear();
foreach (var item in header)
{
Client.DefaultRequestHeaders.Add(item.Key, item.Value);
}
}
if (!string.IsNullOrEmpty(token))
{
Client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue(token);
}
try
{
HttpResponseMessage response = await Client.GetAsync(url);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
catch
{
throw;
}
需指定token的认证方式,本例子token是Bearer,因此Client.DefaultRequestHeaders.Authorization的值修改为:
//HttpClient client = new HttpClient(new HttpClientHandler() { UseCookies = false });
if (header != null)
{
//client.DefaultRequestHeaders.Clear();
foreach (var item in header)
{
Client.DefaultRequestHeaders.Add(item.Key, item.Value);
}
}
if (!string.IsNullOrEmpty(token))
{
Client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
}
try
{
HttpResponseMessage response = await Client.GetAsync(url);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
return responseBody;
}
catch
{
throw;
}
再次调用,成功!
版权声明:本文标题:【Net Core系列】(三)添加了token,仍然提示Response status code does not indicate success: 401 (Unauthorized) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dianzi/1727246483a1104685.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论