Заголовок авторизации не отправлен через запрос HttpClient - PullRequest
0 голосов
/ 28 апреля 2020

Контекст

Я хочу сделать простой вызов API с аутентификацией Basi c, используя HtppClient, в приложении Xamarin.

Проблема

Я был делать это без проблем некоторое время, но через несколько дней, похоже, больше не работает. Неважно, проверяю ли я предыдущие коммиты или нет. Этот запрос работает с почтальоном c, поэтому я уверен, что он исходит из моего кода где-то, а не из API.

Я пытался настроить таргетинг на оба. Net Стандарт 2.0 или 2.1 и неважно, что Я делаю, API говорит мне, что мне не хватает заголовка авторизации. Я даже пытался отобразить myClient.DefaultRequestHeaders.Authorization перед запросом (авторизация есть и правильная) и reponse.RequestMessage.Headers после запроса (авторизация отсутствует, другие заголовки присутствуют).

Примеры кода

Вот моя инициализация клиента:

HttpClient _clientNewApi = new HttpClient();
string authDataNewApi = string.Format("{0}:{1}", username, password);
string authHeaderValueNewApi = Convert.ToBase64String(Encoding.UTF8.GetBytes(authDataNewApi));
_clientNewApi.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authHeaderValueNewApi);
_clientNewApi.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

А вот код, выполняющий запрос:

Uri uri = new Uri(recieved_uri);
// _clientNewApi.DefaultRequestHeaders.Authorization is well set
HttpResponseMessage json_response = await _clientNewApi.GetAsync(uri);
// json_response.RequestMessage.Headers does not contain Authorization Header
// json_response.StatusCode is Unauthorized, and the message sent back by the API is "No authentication credentials provided."

Я отчаянно смотрю на мой код и делаю проверки безрезультатно часами, ребята, любая подсказка ценится по достоинству :)

...