Как пройти аутентификацию на прокси при использовании класса 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>

http://msdn.microsoft.com/en-us/library/dkwyc043.aspx

Если вы хотите сделать то же самое программно, вы можете использовать следующее:

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

(Эти объекты из пространства имен System.Net).

Еще немного информации из MSDN: http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx

Другие вопросы по тегам