首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用IHttpclientFactory获取令牌

使用IHttpclientFactory获取令牌
EN

Stack Overflow用户
提问于 2021-03-20 17:34:05
回答 1查看 82关注 0票数 0

下面的代码是用IhttpclientFactory编写的。由于某些原因,代码没有返回令牌。oauth返回null。如果有人能帮我看看,告诉我哪里出了问题,我会很感激的。谢谢

代码语言:javascript
复制
    private async Task<OAuth>Authenticate()
    {
        //build request
        var request = new HttpRequestMessage(HttpMethod.Post, "/oauth/token");

        request.Content = new StringContent(JsonSerializer.Serialize(new OAuth() {grant_type="client_credentials",client_id="",client_secret=""}));

        request.Content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/x-www-urlencoded");
                  
        //build client
        var client = _clientFactory.CreateClient();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/+json"));

        // send the request
        var response = await client.SendAsync(request);

        OAuth oauth = null;

        if (response.IsSuccessStatusCode)
        {
            var responseStream = await response.Content.ReadAsStringAsync();
            //deserialise

            var oAuth = Newtonsoft.Json.JsonConvert.DeserializeObject<OAuth>(responseStream);
        }
        return oauth;
    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-20 17:41:35

您有两个不同的OAuth变量'oAuth‘和'oauth’。C#标识符区分大小写.

应该是这样的

代码语言:javascript
复制
    if (!response.IsSuccessStatusCode)
    {
       throw new InvalidOperationExeption($"OAuth Request Failed With Status code {response.StatusCode}");
    }
    var responseString = await response.Content.ReadAsStringAsync();
    var oAuth = Newtonsoft.Json.JsonConvert.DeserializeObject<OAuth>(responseString);
    return oAuth;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66724559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档