Клиент C # .Net RestSharp - передача авторизационного токена - PullRequest
0 голосов
/ 27 июня 2018

Я пишу REST-клиент на C # .Net, используя RestSharp. Существует два вызова API - один вызов «Auth», а второй вызов «getKey». Вызов «Auth» возвращает ответ «токен» в ответе, и я хотел бы проанализировать этот токен из ответа и передать его в качестве заголовка для второго вызова «getkey». Посоветуйте пожалуйста с примерами

1 Ответ

0 голосов
/ 29 июня 2018

Я дал пример для достижения вашего сценария. Пожалуйста, используйте приведенный ниже пример и внесите изменения в соответствии с вашими требованиями.

Класс RestUtils:

Добавьте заголовок запроса, если в вашем приложении ожидаются дополнительные заголовки.

 class RestUtils
    {
        private static readonly RestClient _restClient = new RestClient();

        public static void SetBaseURL(String host)
        {
            _restClient.BaseUrl = new Uri(host);
        }

        public static string GetResponse(String endpoint, String token)
        {
            var request = new RestRequest(endpoint, Method.GET);
            request.AddHeader("Accept", "application/json");
            request.AddHeader("Authorization", token);
            IRestResponse response = _restClient.Execute(request);
            return response.Content;
        }

        public static string GetToken(String endpoint)
        {
            var request = new RestRequest(endpoint, Method.GET);
            request.AddHeader("Accept", "application/json");
            IRestResponse response = _restClient.Execute(request);
            return response.Content;
        }
    }

TestClass:

В вашем тестовом классе вы можете добавить следующие шаги и получить ожидаемый результат. Первые две строки будут выполнены, и в качестве выходных данных будет выдан токен аутентификации. Таким образом, вы можете использовать полученный токен в последующих строках для другого API. По-другому, вы можете создать один класс свойств и установить значение полученного токена. Таким образом, вы можете получить доступ к токену из другого класса.

        //Specify the Base URI of your Token Specific API
        RestUtils.SetBaseURL("https://login.microsoftonline.com/");
        //Specify the End Point of your Token Specific API
        String token = RestUtils.GetToken("/oauth2/token");

        //Specify the Base URI of your actual Test API
        RestUtils.SetBaseURL("XXXXXXX");
        String response = RestUtils.GetResponse(token);
...