繁体   English   中英

如何在没有用户名和密码的情况下访问 REST API 方法 - 但只能使用令牌?

[英]Howto access REST API methods without username and Password - but only with a token?

我正在尝试使用来自 c#/.net 的令牌访问/调用 REST API 中的方法-但我无法得到任何响应。 我有很多 googlet - 但没有任何成功:-( 我是通过 REST API 调用方法的新手。

我有一个端点和一个令牌,需要用来与 REST API 进行通信。 我需要通过这些方法在服务器上获取、发布、放置和删除数据

API 的输出采用 JSON 格式。

也许这很简单 - 但我不知道该怎么做。

任何帮助表示赞赏。

我尝试了以下解决方案 - 但没有成功:-(

        private static async void DoIt()
        {
            using (var stringContent = new StringContent("{ \"firstName\": \"Andy\" }", System.Text.Encoding.UTF8, "application/json"))
            using (var client = new HttpClient())
            {
                try
                {
                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", token);

                    // 1. Consume the POST command
                    var response = await client.PostAsync(endpoint, stringContent);
                    var result = await response.Content.ReadAsStringAsync();
                    //Console.WriteLine("Result from POST command: " + result);

                    // 2. Consume the GET command
                    response = await client.GetAsync(endpoint);
                    if (response.IsSuccessStatusCode)
                    {
                        var id = await response.Content.ReadAsStringAsync();
                        //Console.WriteLine("Result from GET command: " + result);
                    }
                }
                catch (Exception ex)
                {
                    //Console.ForegroundColor = ConsoleColor.Red;
                    //Console.WriteLine(ex.Message);
                    //Console.ResetColor();
                }
            }
        }

在您的代码中,您使用“Basic”初始化AuthenticationHeaderValue ,这意味着基于用户名和密码的基本身份验证。 如果你有一个令牌,你可以这样做:

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", ACCESS_TOKEN);

用您拥有的令牌替换 ACCESS_TOKEN。

这是最可能的解决方案,但我只能在这里猜测,因为我不知道您尝试访问的 API。 如果它仍然不起作用,请尝试省略“Bearer”。

参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM