Веб-API с базовой аутентификацией - PullRequest
0 голосов
/ 28 мая 2019

Я звоню в веб-API, который требует базовой аутентификации, используя следующий код:

using (var handler = new HttpClientHandler() { DefaultProxyCredentials = CredentialCache.DefaultCredentials } )
{
            handler.PreAuthenticate = true;
            using (var client = new HttpClient(handler))
            {
                var byteArray = Encoding.ASCII.GetBytes($"{UId}:{Pwd}");
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));
                var response = await client.GetAsync(url);

                // if status code is 401, retry.
                if (response.StatusCode == HttpStatusCode.Unauthorized)
                    response = await client.GetAsync(url);
            }
}

API всегда возвращает 401, и я должен повторить попытку (что работает). Я попытался добавить PreAuthenticate, но это не помогло.

Требуются ли какие-либо другие изменения, чтобы это исправить?

...