Подтвердить что ты не робот

Как аутентифицировать прокси-сервер при использовании класса HttpClient?

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

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

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

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

Ответ 1

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

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

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

Ответ 2

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

WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

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

Дополнительная информация из MSDN: http://msdn.microsoft.com/en-us/library/system.net.webproxy.getdefaultproxy.aspx