Использование DefaultRequestHeaders отправляет запросы дважды? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть WebAPI, который отправляет информацию об авторизации BASIC следующим образом.

var client = new HttlpClient();
client.BaseAddress = new Uri(GlobalConstants.LdapUri);
var contentType = new MediaTypeWithQualityHeaderValue("application/json");

client.DefaultRequestHeaders.Accept.Add(contentType);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password))));
Task<HttpResponseMessage> results = client.GetAsync(GlobalConstants.FortressAPIUriDev);
var response = await results;

Я создал этот API-интерфейс с использованием MVC Core 1.x, а API-интерфейс получения - с помощью MVC5.

Проблема в том, что этот GetAsync отправляет два запроса одновременно, и я понятия не имею, как решить эту проблему.Я сам немного погуглил, чтобы посмотреть, смогу ли я найти решение этой проблемы, но пока не повезло.Кто-нибудь сталкивался с этой проблемой и знает, как ее решить?

Заранее большое спасибо.

1 Ответ

0 голосов
/ 28 сентября 2018

Короче говоря, нашел решение следующим образом:

using (var client = new HttpClient())
{
    var requestMessage = new HttpRequestMessage(HttpMethod.Get, GlobalConstants.LdapUri + GlobalConstants.FortressAPIUriDev);
    requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password))));
    var response = await client.SendAsync(requestMessage);
}

После замены этим кодом он отправляет один запрос за раз.Нашел подсказку по адресу: Добавление заголовков при использовании httpClient.GetAsync

...