Ответ 1
Мне удалось решить мою проблему очень просто через конфигурацию прокси в app.config.
<system.net>
<defaultProxy enabled="true" useDefaultCredentials="true">
<proxy usesystemdefault="True" />
</defaultProxy>
</system.net>
У меня есть консольное приложение, построенное на .NET 4, которое использует библиотеку HttpClient
(полученную через NuGet) для извлечения данных из открытого API через Интернет. Консольное приложение находится за прокси-сервером. На машине Windows, на которой он установлен, установлены правильные параметры прокси-сервера в Internet Explorer. Когда консольное приложение пытается получить доступ к внешнему миру, ему присваивается статус 407 - требуется "аутентификация прокси".
Я еще не написал специального кода для работы с прокси-сервером. Я исхожу из ошибки 407, что приложение направляет прокси-серверу никаких проблем, но прокси-сервер не аутентифицирует запрос.
Мой вопрос: возможно ли установить HttpClient для использования учетных данных зарегистрированного пользователя для аутентификации прокси-сервера? Если да, то как?
var client = new HttpClient(webRequestHandler);
client.PostAsync(RequestUri, MyContent);
Мне удалось решить мою проблему очень просто через конфигурацию прокси в 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