C # WebClient работает медленно в первый раз - PullRequest
0 голосов
/ 05 февраля 2011

Я использую WebClient для загрузки текста с веб-страницы, например так:

WebClient wc = new WebClient();
string str = wc.DownloadString("http://blah");

Теперь, когда он работает абсолютно нормально, одна проблема, с которой я сталкиваюсь, заключается в том, что в первый разинициализирует и загружает строку, это очень медленно - это занимает около 5 секунд.После этого он загружает текст в течение полсекунды.

Можно ли как-нибудь решить эту проблему?Мне бы очень хотелось, чтобы он был быстрым все время, чтобы он не раздражал пользователя.

Я использую C # .NET 4.0, если это имеет значение.

1 Ответ

0 голосов
/ 09 февраля 2011

Следующее решение было взято из здесь

То, что вы видите, вызвано автоматическим обнаружением прокси.Когда приложение запускается, сначала мы определяем, какой прокси использовать, а затем используем этот прокси или сценарий прокси для последующих запросов.Когда вы закрываете приложение, сценарий или инфраструктура прокси исчезают, и мы должны сделать это снова при следующем запуске приложения.

У вас есть несколько вариантов.

  1. Вы можете отключить автоматический прокси-сервер, зайдя в настройки IE и отключив опцию автоматического определения параметров прокси.Это в Сервис-> Свойства обозревателя-> вкладка Подключения-> Кнопка Настройки LAN.Снимите флажок Автоматически определять настройки.

  2. , если вы можете определить статический прокси-сервер [trhat не изменяет динамически его имя], вы можете указать, что прокси WebProxy wp = new WebProxy (, ......);

WebClient.Proxy = wp;

...