Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2011, 22:41   #1
goodwen
 
Регистрация: 24.01.2010
Сообщений: 6
По умолчанию

Здравствуйте, я написал две программы, которые с помощью классов HttpWebRequest и HttpWebResponse в интернете ищут с помощью словарей определённые тексты и формирует с помощью всего этого другой словарь. Вот более

1. Программа берёт сказуемое из соответствующего словаря и обращается в библиотек lib.ru, там по ссылкам начинает рассматривать каждый текст, который есть, форматировать и фрагментировать его, а далее составлять определённые связки и записывать их в новый словарь.

2. Вторая делает почти тоже самое но только обращается к google.

Обе программы работают хорошо только минуты 2-3, после чего постоянно начинает приходить 503 ошибка "нет ответа от сервера". Если программу отключаю и включаю, тогда с самого начала 503 ошибка и только минуты через 10-15, если программу не включать, снова начинают приходить html странички. Тут сразу напрашивается то, что слишком много обращений за какой то промежуток времени к серверу. Я написал, чтобы запросы отправлялись с интервалом в 100 миллисекунд, проблема сохранилась. Поставил чтобы интервал был 4 секунды, тоже самое, работает минуты 3 и начинает 503 ошибка приходить. Если брать на примере библиотеки lib.ru, то что 100 миллисекунд, что 4 секунды интервал, всё равно около 150 запросов делает и ошибка 503 приходит. Как можно решить данную проблему?

Вот пример метода, который делает запрос:

Код:
public string MakeRequest(string query){ //метод позволяет получить html страничку по отдельной ссылке

            queryPathString = query; //на вход подаётся сразу ссылка
            string html;

            //Класс HttpWebRequest позволяет отправлять HTTP-запросы
            //класс HttpWebResponse позволяет обрабатывать полученные ответы

            try{

                //создается экземпляр класса HttpWebRequest для работы с интернетом
                HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(queryPathString); 
                myHttpWebRequest.Timeout = 3000; //устанавливаем время ожидания от сайта
                myHttpWebRequest.Method = "POST";
                //создается экземпляр класса HttpWebResponse, который получает результат выполнения GET-запроса к google.
                HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 
                //создается экземпляр StreamReader, который принимает данные из HttpWebResponse, 
                //при этом указывается кодировка Windows-1251, если ее не указать, получится «абракадабра»
                StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251)); 
                html = myStreamReader.ReadToEnd(); //возвращаем результат
                myHttpWebResponse.Close();
                myStreamReader.Close();
                return html;
            }catch (Exception){

                return "";
            }
        } //конец метода MakeRequest, который позволяет получить html страницку по отдельной ссылке

Там приходят html страницы, которые программа обрабатывает. Обе программы работают хорошо только минут 5. После чего начинает постоянно приходить 503 ошибка "нет ответа от сервера". При этом из браузера (если самому заходить через браузре) по тем же ссылкам сайты доступны. Когда начинается это, если отключаю программу и включаю - сразу 503 ошибка. Если программу отключить и подождать минут 15 и включить, тогда начинают приходить html странички, но соответственно так же не более 5 минут.

Я писал на C# используя классы: HttpWebRequest и HttpWebResponse. Там, насколько я понял, все детали взаимодействия скрыты в самом классе и на вход подаётся только ссылка, а на выходе html страничка. В чём может быть проблема? (в том что идёт слишком много запросов?) И как можно данную проблему решить, или обойти? Мы можем с Вами встретиться, или по email, или skype общаться. Как Вам будет удобнее.

Всё что после кода, скопировал случаенно и это можно не читать.

Последний раз редактировалось alexBlack; 12.12.2011 в 23:15.
goodwen вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Через HttpWebResponse получить cookie? ruffini C# (си шарп) 2 26.09.2011 23:10
Проблема с HttpWebRequest и HttpWebResponse 3dgraph Общие вопросы .NET 2 15.07.2009 11:20
HttpWebRequest и HttpWebResponse Bbo Общие вопросы .NET 1 14.05.2009 15:51