Как пройти аутентификацию на прокси при использовании класса HttpClient?
У меня есть консольное приложение, построенное на.NET 4, которое использует HttpClient
библиотека (полученная через NuGet) для извлечения данных из общедоступного API через Интернет. Консольное приложение находится за прокси. У компьютера с Windows, на котором он находится, установлены правильные настройки прокси в Internet Explorer. Когда консольное приложение пытается получить доступ к внешнему миру, ему присваивается статус 407 - "требуется проверка подлинности прокси".
Я не написал никакого конкретного кода для работы с прокси. Из ошибки 407 я предполагаю, что приложение перенаправляет на прокси без проблем, но прокси не аутентифицирует запрос.
У меня вопрос: можно ли настроить HttpClient на использование учетных данных вошедшего в систему пользователя для аутентификации прокси? Если так, то как?
var client = new HttpClient(webRequestHandler);
client.PostAsync(RequestUri, MyContent);
2 ответа
Мне удалось решить мою проблему очень просто через настройку прокси в app.config.
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy usesystemdefault="True" />
</defaultProxy>
</system.net>
Если вы хотите сделать то же самое программно, вы можете использовать следующее:
WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;
(Эти объекты из пространства имен System.Net).
Еще немного информации из MSDN: http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx