Я пишу .NET Core Web API, который использует HttpClient для связи с внешним API из моей рабочей сети.Первоначально у меня была периодическая ошибка 407 Аутентификация через прокси, и я наткнулся на эту статью , поскольку я неправильно передавал учетные данные на веб-сервер вместо прокси.
Я внес изменения, описанные в статье.и теперь я получаю исключение от нашего прокси-сервера:
" Ваши учетные данные не могут быть аутентифицированы: учетные данные отсутствуют. Вам не будет разрешен доступ, пока ваши учетные данные не будут проверены."
Как ни странно, я протестировал приведенный ниже код (на той же машине), используя простое консольное приложение .NET Framework 4.6.1, и он работает отлично, так как я получаю ожидаемыйПолезная нагрузка от внешнего API.У меня точно такой же код для настройки моего HttpClient в Web API, и я не могу понять, почему кажется, что учетные данные не передаются соответствующим образом в WebProxy.
Примечание: я пробовал жестко программировать определенныйимя пользователя и пароль для WebProxy.Credentials (как показано в связанной статье выше), если предположить, что полномочия, которые запускают Web API в отладчике на моем локальном компьютере, могут не совпадать с теми, которые выполняются в консольном приложении.Я все еще получаю сообщение об отсутствии учетных данных.
var httpClientHandler = new HttpClientHandler
{
UseProxy = true,
Proxy = new WebProxy()
{
Address = new Uri("http://companyproxy:port"),
BypassProxyOnLocal = true,
UseDefaultCredentials = false,
Credentials = CredentialCache.DefaultCredentials
//Credentials = new NetworkCredential("userName", "password")
}
};
HttpClient httpClient = new HttpClient(httpClientHandler)
{
BaseAddress = new Uri("http://externalApiUrl/endpoint")
};