_Q12_ Ответов: 1

Доступ к веб-странице другими способами ?


У меня есть этот новый класс "Веб-страница". Я вызываю его из события кнопки в форме 1.
Проблема в том, что я повторно вызываю весь этот процесс идентификации веб-сайта каждый раз, когда я иду на новую страницу на этом веб-сайте. Я думаю, что этот большой метод нужен только один раз, когда я впервые захожу на сайт. Моя интуиция говорит, что я должен использовать что-то другое, чем этот большой код для каждой другой страницы на одном и том же веб-сайте. Я ошибаюсь, и я должен придерживаться того, что у меня есть и уже работает? Или я прав и есть другие методы (после) этого ?
Спасибо!

public class WebPage
{

    public string GetText(string url)
    {
        //Special webpage Reading (extract info from page)
        HttpWebRequest request;
        HttpWebResponse response = null;
        Stream stream = null;
        request = (HttpWebRequest)WebRequest.Create(url);
        request.UserAgent = "Foo";
        request.Accept = "*/*";
        response = (HttpWebResponse)request.GetResponse();
        stream = response.GetResponseStream();

        StreamReader sr = new StreamReader(stream, System.Text.Encoding.Default);
        string text = sr.ReadToEnd();
        if (stream != null) stream.Close();
        if (response != null) response.Close();
        return text;
    }
}


Что я уже пробовал:

код, который я уже ввел

1 Ответов

Рейтинг:
1

Gerry Schmitz

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

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


_Q12_

вы правы - я исправил поток с помощью "sr.Close();" в конце концов.

_Q12_

Я действительно не знаю, как сделать надежные методы веб-доступа. Это лучшее, что я мог сделать, и я использую этот метод в течение нескольких лет - я доволен им, потому что он работает, но я тоже чувствую, что это не так эффективно. Вот почему я спросил об этом здесь сегодня. Спасибо.

Gerry Schmitz

Вы, кажется, подразумевали, что делаете "копии и пасты" этого конкретного метода.

Вот где я вижу вашу главную проблему; если это то, что вы делаете; дублирование кода. Если нет, то ладно.

(Посмотрите на инструкцию / шаблон " Using ..." в c# reference re: disposing of resources / files).