Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
2 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 29

Программа виснет при работе с HttpWebResponse

28.08.2011, 19:58. Показов 5093. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написал программу, которая берет их текстового файла URLы, и по очереди заходит на каждый:

C#
1
2
3
4
5
6
7
8
9
10
11
12
StreamReader read = new StreamReader("file.txt");
            while (!read.EndOfStream)
            {
                string url = read.ReadLine();
 
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:6.0) Gecko/20100101 Firefox/6.0";
                request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
                request.KeepAlive = true;
                HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                //System.Threading.Thread.Sleep(1000);
            }
Программа нормально проходит первые 2-3 URL, а потом при попытке получить HttpWebResponse просто виснет и пишет, что сервер отдает 404. Пробовал разные сайты, разную последовательность URLов...
В чем может быть проблема?
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.08.2011, 19:58
Ответы с готовыми решениями:

Обработка http ошибок при использовании HttpWebResponse
Как обработать ошибки приходящие с сервера? например 404 или если сервер не доступен? string ServerV =...

При работе программы перерисовывается рабочий стол, хотя программа никакого отношения к нему не имеет
Почему так, есть какие-нибудь соображения? Программа- обыкновенный примитивный оконный бинарный калькулятор, да ещё весь функционал и не...

Программа виснет при работе с com-портом
Та же проблема, в программе задействовано 2 com порта, со вторым постоянные неприятности! Ни каких эксепшенов просто зависает программа!...

9
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
29.08.2011, 12:57
Сайты разные или один? Если один, то может срабатывать защита сайта от DDoS атак.
0
236 / 173 / 25
Регистрация: 13.11.2010
Сообщений: 425
29.08.2011, 13:08
smartweb, может надо TimeOut поставить секунд на 5?
0
2 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 29
29.08.2011, 13:15  [ТС]
Slap, пробовал разные сайты, комбинации и т.д. 100% не защита.

almazsr, можно пример кода?
0
236 / 173 / 25
Регистрация: 13.11.2010
Сообщений: 425
29.08.2011, 13:31
У меня просто были проблемы, когда Яндекс упал на днях. Из-за неограниченного времени ожидания ответа программа подвисала. Время ожидания уменьшил и помогло.
C#
1
2
3
            WebRequest request = WebRequest.Create(url);
            request.Timeout = 5000;
            WebResponse response = request.GetResponse();
1
2 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 29
29.08.2011, 13:48  [ТС]
almazsr, не помогло... Да и при отладке видно время ожидания ответа от сервера, всё практически мгновенно происходит (сервисы гугла, например, очень быстро отвечают). Но на 3-4 попытке софт зависает (не только на сервисах гугла, так что это не бан).
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
29.08.2011, 14:35
smartweb, попробуйте качать страницы как то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        string loadPage(string uri, int codepage)
        {
            StreamReader reader;
            HttpWebRequest httpWebRequest;
            HttpWebResponse httpWebResponse;
 
            try
            {
                httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
                httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                reader = new StreamReader(httpWebResponse.GetResponseStream(), Encoding.GetEncoding(codepage));
                return reader.ReadToEnd();
            }
            catch
            {
                return "error";
            }
        }
codepage - это кодировка:
windows-1251 - 1251
utf-8 - 65001
koi8-r - 20866

Только что протестировал - пару сотен загрузил спокойно.
0
2 / 2 / 0
Регистрация: 28.08.2011
Сообщений: 29
29.08.2011, 14:49  [ТС]
Slap, мне не нужно качать, просто нужно проходится по списку URL из файла и получать ответ от сервера, дальше переходить к след. URL.
0
179 / 175 / 14
Регистрация: 17.01.2011
Сообщений: 349
29.08.2011, 14:52
smartweb, не надо - не качай:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            HttpWebRequest httpWebRequest;
            HttpWebResponse httpWebResponse;
 
            try
            {
                httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(uri);
                httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
                httpWebResponse.Close();
                return "ok";
            }
            catch
            {
                return "error";
            }
Только соединение то закрывать надо:
C#
1
httpWebResponse.Close();
4
0 / 0 / 0
Регистрация: 08.11.2015
Сообщений: 1
18.07.2016, 15:18
httpWebResponse.Close();

Ты гений, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2016, 15:18
Помогаю со студенческими работами здесь

Виснет программа при компиляции, степовер не работает, так же виснет
Виснет программа при компиляции, степовер не работает, так же виснет. Программа - простейший калькулятор. ...

F4 виснет при работе с FLASH
понадобилось мне хранить данные внутри флэша, попробовал для начала штатный драйвер #define ADDR 0x080E0000//начало последнего сектора ...

Виснет система при работе в интернете
сначала грешил на хард. но опытным путем было выяснено что хард не при чем. проводил тесты хардов и оперативки. ничего нового не узнал....

Виснет форма при работе с потоками
В общем, создал многопоточный парсер, который собирает данные со страниц сайта, 1 поток - 1 страница, если выставляю потоков 20 на страниц...

Система при работе в интернете виснет намертво
Пользуюсь интернетом через юсб модем. Когда пропадает уровень сигнала и тип сети меняется с 3G до 2G, то система зависает, не реагирует ни...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru