Почему мой запрос VB.Net WebClient.DownloadString занимает так много времени? - PullRequest
0 голосов
/ 15 августа 2010

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

    Dim client As WebClient = New WebClient()
    Dim theText As String = client.DownloadString("http://192.168.1.110/text.html")
    Me.TextBox1.Text = theText

Когда я ее запускаю, команда client.DownloadString занимает 6 или 7 секунд (получает около 20 байт текста). Если я сделаю такой же запрос в веб-браузере, то это в основном немедленно. Я прочитал несколько связанных сообщений на других сайтах о члене прокси (client.Proxy), который должен быть нулевым. Учитывая, что VB.Net не поддерживает null, я установил его на «Nothing», но производительность не изменилась. Любые идеи о том, почему это медленно?

Обновить ... да, запрос действительно выполнен. Это займет всего 6 или 7 секунд. Это только медленно при первом звонке. Если я удаляю содержимое текстового поля и запускаю его снова, это происходит немедленно. Я провел некоторое исследование по этому вопросу и обнаружил, что это связано с настройкой прокси-сервера по умолчанию (client.Proxy), который он читает из настроек браузера IE. Опять же, я видел эту проблему в других сообщениях, но никогда в VB.Net, и решение всегда состоит в том, чтобы установить client.Proxy = Null. Однако VB.Net не поддерживает NULL. Я попытался установить его на «Ничего», но, похоже, это не помогло.

1 Ответ

2 голосов
/ 23 марта 2011

У меня была та же проблема с длинными задержками при запросах URL, но у меня работало следующее кодирование:

        objwebClient = New WebClient()
        objwebClient.Proxy = Nothing
...