Как пройти аутентификацию на прокси при использовании класса HttpClient? - PullRequest
16 голосов
/ 22 марта 2012

У меня есть консольное приложение, построенное на .NET 4, которое использует библиотеку HttpClient (полученную через NuGet) для извлечения данных из открытого API через Интернет.Консольное приложение находится за прокси.У компьютера с Windows, на котором он находится, установлены правильные настройки прокси в Internet Explorer.Когда консольное приложение пытается получить доступ к внешнему миру, ему присваивается статус 407 - «требуется проверка подлинности прокси».

Я не написал никакого специального кода для работы с прокси.Из ошибки 407 я предполагаю, что приложение перенаправляет на прокси без проблем, но прокси не аутентифицирует запрос.

Мой вопрос: возможно ли настроить HttpClient на использование учетных данных вошедшего в систему пользователя для аутентификации прокси?Если так, то как?

var client = new HttpClient(webRequestHandler);
client.PostAsync(RequestUri, MyContent);

Ответы [ 2 ]

30 голосов
/ 23 марта 2012

Мне удалось очень просто решить мою проблему с помощью конфигурации прокси в app.config.

<system.net>
    <defaultProxy enabled="true" useDefaultCredentials="true">
        <proxy usesystemdefault="True" />
    </defaultProxy>
</system.net>

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

18 голосов
/ 07 августа 2013

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

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

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

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

...