简体   繁体   中英

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

I'm trying to access/call methods in a REST API with a token from c#/.net- but I can't get any response back. I have googlet a lot - but without any success :-( I am new to call methods via a REST API.

I have an endpoint and a token which I need to use for communicating with a REST API. And I need to GET, POST, PUT and DELETE data on the server via those methods

The output from the API is in JSON format.

Maybe it is simple - but I don't know howto do it.

Any help is appreciated.

I have tried the following solution - but with no success :-(

        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();
                }
            }
        }

In your code you initialize AuthenticationHeaderValue with "Basic", which means Basic authentication based on username and password. If you have a token, you do it with:

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

replace ACCESS_TOKEN with the token you have.

This is the most probable solution, but I can only guess here, as I don't know the API you're trying to access. If it still doesn't work, try ommiting "Bearer".

Reference

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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