401 не авторизован с помощью библиотеки C # HttpClient - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь обновить код до HttpClient из HttpWebRequest в c #.

Я не могу аутентифицировать сторонний сервис с HttpClient и не вижу этой проблемы с почтальоном или библиотекой httpwebrequest

Я пробовал с почтальоном.

Ссылка на окно консоли почтальона:

GET / api / v2 / geocodes / a973-5a1c5d435990 Тип содержимого: приложение / json Авторизация: JWT ey -----iJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNTYzMDEwOTg4LCJqdGkiOiIwNWM3 контроль кэша: без кэша Почтальон-токен: 8d46fa25-698c-477d-агент: def-0 * * 0 -0 * 0,60 * 0,60 * 0,60 -0-0-0: http://api.concept.quincus.com/api/v2/geocodes/3d0a4758-611e-448f-a973-5a1c5d435990

рабочий код:

var httpWebRequest = (HttpWebRequest)WebRequest.Create(
                        quincusGeoCodeDataRequest.endpoint);

                    httpWebRequest.ContentType = "application/json";
                    httpWebRequest.Headers.Add("AUTHORIZATION", "JWT " + quincusGeoCodeDataRequest.quincusTokenData.token);
                    httpWebRequest.Method = "GET";
                    httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

                    string response;

                    using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
                    {
                        response = streamReader.ReadToEnd();
                        streamReader.Close();
                    }

Я пытаюсь реализовать тот же код с библиотекой HttpClient

var response = string.Empty;
            using (var client = new HttpClient())
            {
                HttpRequestMessage request = new HttpRequestMessage
                {
                    Method = HttpMethod.Get,
                    RequestUri = new Uri("http://sample.com/3d0a4758"),

                };

                request.Headers.Authorization = new AuthenticationHeaderValue("JWT","eyJ0eXAiOiJKV1QiLC");

                HttpResponseMessage result = await client.SendAsync(request);
                if (result.IsSuccessStatusCode)
                {
                    response = result.StatusCode.ToString();
                }
            }
            return response;

Всегда возвращается 401 неавторизованным.Я не знаю, в чем проблема?

Я хочу узнать, как реализовать httpclient для приведенного выше фрагмента кода httpwebrequest

1 Ответ

0 голосов
/ 09 июля 2019

Измените JWT с Bearer и измените АВТОРИЗАЦИЮ на Авторизацию

...