Начиная с .NET 2.0 вам не нужно этого делать. Если вы явно не задаете свойство Proxy в веб-запросе, оно использует значение статического WebRequest.DefaultWebProxy. Если вы хотите изменить прокси, используемый во всех последующих веб-запросах, вы можете установить это статическое свойство DefaultWebProxy.
Поведение WebRequest.DefaultWebProxy по умолчанию заключается в использовании тех же базовых настроек, что и в Internet Explorer.
Если вы хотите использовать различные настройки прокси для текущего пользователя, тогда вам нужно будет набрать
WebRequest webRequest = WebRequest.Create("http://stackoverflow.com/");
webRequest.Proxy = new WebProxy("http://proxyserver:80/",true);
или
WebRequest.DefaultWebProxy = new WebProxy("http://proxyserver:80/",true);
Следует также помнить, что объектная модель для прокси-серверов включает концепцию, согласно которой прокси-сервер может различаться в зависимости от имени хоста назначения. Это может немного смущать при отладке и проверке свойства webRequest.Proxy. Звоните
webRequest.Proxy.GetProxy(new Uri("http://google.com.au"))
для просмотра фактических данных прокси-сервера, который будет использоваться.
Похоже, идут споры о том, можете ли вы установить webRequest.Proxy
или WebRequest.DefaultWebProxy = null
, чтобы предотвратить использование какого-либо прокси. Кажется, это работает нормально для меня, но вы могли бы установить его на new DefaultProxy()
без параметров, чтобы получить требуемое поведение. Еще одна вещь, которую нужно проверить, - это то, что если в файле конфигурации вашего приложения существует прокси-элемент , .NET Framework будет НЕ использовать настройки прокси в Internet Explorer.
В статье MSDN Magazine Снять нагрузку с пользователей с автоматической настройкой в .NET дается более подробная информация о том, что происходит под капотом.