TObase64String не кодирует мой токен доступа, в результате чего 401 не авторизован - PullRequest
0 голосов
/ 19 июня 2019

Проблема в том, что строка 'result' в ToBase64string конвертируется так, как она выглядит во время отладки, но затем, когда я использую result после кодирования, она выглядит как в 'var response =', где я хочу использовать 'result'после кодирования не кодируется в режиме отладки.Зачем?Я что-то упустил

   [HttpGet, Route("values/get")]
        public async Task<string> Get(string resulted)
        {
            //resulted.Remove(0, 17);
             string res = "";
             using (var client = new HttpClient())
            {
                // HTTP POST

                client.BaseAddress = new Uri("https://api.elliemae.com/");
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(resulted)));
                var response = client.GetAsync("/encompass/v1/loans/{ea7c29a6-ee08-4816-99d2-fbcc7d15731d}?Authorization=Bearer "+resulted+"&Content-Type=application/json").Result;
                using (HttpContent content = response.Content)
                {
                    // ... Read the string.
                    Task<string> result = content.ReadAsStringAsync();
                    res = result.Result;
                }
            }
            return res;
        }

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Когда ваш Acesstoken возвращается с дополнительными данными, например: " {\" access_token \ ": \" uKW7HeksFXz5QE1sF6Kjmfda5Fxi \ ", \" token_type \ ": \" Bearer \ "} \ r \ n" затем используйте 'substring', чтобы просто добавить его к коду доступа, например, он должен выглядеть следующим образом -> ' uKW7HeksFXz5QE1sF6Kjmfda5Fxi '

как?Accesstoken.Substring (x, x);(x = некоторое число, которое вычитаете из строки)

, затем поместите его в DefaultRequestHeaders

  public async Task<string> Get(string Accesstoken)

            {
                 string res = "";
                 using (var client = new HttpClient())
                {
                    Accesstoken = Accesstoken.Substring(17, 28);
                    client.BaseAddress = new Uri("https://api.elliemae.com/");
                   //client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
                    client.DefaultRequestHeaders.Add("Authorization", "Bearer " + Accesstoken);
                    var response = client.GetAsync("encompass/v1/loans/ea7c29a6-ee08-4816-99d2-fbcc7d15731d").Result;
                    using (HttpContent content = response.Content)
                    {
                        // ... Read the string.
                        Task<string> result = content.ReadAsStringAsync();
                        res = result.Result;
                    }
0 голосов
/ 20 июня 2019

Вам необходимо добавить в запрос заголовок авторизации.Вам необходимо установить Авторизация Заголовок на Носитель [acces_token]

httpClient.DefaultRequestHeaders.Authorization =
       new AuthenticationHeaderValue("Bearer "+ access_token);

Обратите внимание, что после Носитель слово.

есть пробел.

Это значение new AuthenticationHeaderValue («Носитель» + access_token) должно быть что-то вроде new AuthenticationHeaderValue («Носитель asadasda23qdaddfs45345") , где asadasda23qdaddfs453 - 453Вы получили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...