Battle.net Api验证

时间:2019-02-19 19:50:27

标签: c# api authentication curl oauth

我尝试获取访问令牌,并且遵循此指南:

这是我的代码:

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未经授权”错误。

1 个答案:

答案 0 :(得分:0)

知道了。抱歉,抽出宝贵的时间。我忘了读出内容,并且有access_token。 刚刚添加了这一行:

test = System.Threading.Tasks.Task.Run(()=> response.Content.ReadAsStringAsync())。Result;

在第一个请求之后,现在可以使用了。谢谢大家的帮助。