我尝试获取访问令牌,并且遵循此指南:
这是我的代码:
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://eu.battle.net/oauth/token"))
{
var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("{client_id}:{client_secret}"));
request.Headers.TryAddWithoutValidation("Authorization", $"Basic {base64authorization}");
request.Content = new StringContent("grant_type=client_credentials", Encoding.UTF8, "application/x-www-form-urlencoded");
var response = System.Threading.Tasks.Task.Run(()=>httpClient.SendAsync(request)).Result;
test = response.RequestMessage.Headers.Authorization.Parameter;
}
using (var request = new HttpRequestMessage(new HttpMethod("GET"), "https://eu.api.blizzard.com/data/wow/token/?namespace=dynamic-eu"))
{
request.Headers.TryAddWithoutValidation("Authorization", "Bearer "+ test);
var response = System.Threading.Tasks.Task.Run(() => httpClient.SendAsync(request)).Result;
}
}
获得授权参数的第一部分有效。但是,如果我尝试该请求,则会收到“ 401未经授权”错误。
答案 0 :(得分:0)
知道了。抱歉,抽出宝贵的时间。我忘了读出内容,并且有access_token。 刚刚添加了这一行:
test = System.Threading.Tasks.Task.Run(()=> response.Content.ReadAsStringAsync())。Result;
在第一个请求之后,现在可以使用了。谢谢大家的帮助。