Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95

Странное поведение HttpWebRequest

13.08.2011, 11:33. Показов 1713. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю запрос к серверу на получение данных через HttpWebRequest. Сами данные в виде JSON, и их по задумке авторов должен получать браузер при взаимодействии с сервером (в общем, XHR). Всего надо сделать около 20 таких запросов (и получить 20 порций данных).
Но на сервере стоит какая-то хитрая защита (чтобы данные загружать можно было только в браузере), при третьем подряд запросе сервер отказывается выдавать ответ (время ожидания операции истекло). При этом было установлено, что нужно сделать перерыв не меньше 30 секунд, чтобы ответ был получен на третьем запросе.
Но самое интересное в том, что если я закрываю программу, запускаю сразу же снова (прошло не больше 5 секунд) и снова отправляю последний запрос, то благополучно получаю ответ на этот третий запрос!
Не могу понять, как такое могло получиться. В запросе я использую Cookies: перед отправкой запросов нужно получить куки с сайта (видимо, дополнительная проверка). Пытался очищать Cookies перед "критическим запросом" и снова получать новые сайта, но это не помогает.
В общем, при перезапуске программа делает то же самое (получает новые куки и отправляет запрос), но ответ получает благополучно! И не нужно ждать 30 секунд.
Поэтому вопрос - как такое могло получиться, и что нужно сделать, чтобы не ждать 30 секунд без перезапуска программы?

Добавлено через 16 минут
Ещё забыл сказать, что это вышло не случайно, пробовал несколько раз - получал один и тот же результат.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2011, 11:33
Ответы с готовыми решениями:

Странное поведение event-ов
Всем доброго дня! Подскажите, кто знает, в чем может быть проблема. Есть структура такого типа: class parent { ...

Странное поведение мьютекса
Имеется такой кусок кода Mutex instanse; bool is_new; instanse = new Mutex(true,...

Странное поведение .NET Framework 4.0
Есть подобная структура: public class B { public int field1; public string field2; } ...

10
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95
14.08.2011, 18:10  [ТС]
По-прежнему жду предложений
0
 Аватар для Alessandr
20 / 21 / 1
Регистрация: 13.08.2011
Сообщений: 51
14.08.2011, 20:10
DNS, IP?
Узнаем ип по имени сайта и nslookup. Сравниваем с провайдерским или под дебагером смотрим что содержится в классе, и что можно использовать для отслеживания
0
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95
14.08.2011, 20:18  [ТС]
Добавлено через 4 минуты
Цитата Сообщение от Alessandr Посмотреть сообщение
DNS, IP?
Узнаем ип по имени сайта и nslookup. Сравниваем с провайдерским или под дебагером смотрим что содержится в классе, и что можно использовать для отслеживания
Не совсем понял, что советуете...
Просто удивительное в том, что за эти 5 секунд мой IP точно не успевает смениться, программа повторяет абсолютно те же действия, но запрос проходит!

Сравнивал через fiddler запросы - они абсолютно одинаковые.
Такое ощущение, что программа при любом запросе скрытно также отправляет какой-то id, который меняется при каждом её запуске.
0
 Аватар для Alessandr
20 / 21 / 1
Регистрация: 13.08.2011
Сообщений: 51
14.08.2011, 20:21
Извините, у меня браузер глюкнул, я какую-то горячую клавишу нажал он закрылся попытался восстановить страницы и отправил сообщение в эту тему, я писал в совсем другое место))
Еще раз прошу прощения...
Модераторов если можно попросил бы удалить сообщение, сам вроде не могу...

По вашей проблеме, я завтра попытаюсь её восстановить, поглядеть.
0
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95
14.08.2011, 20:25  [ТС]
В общем, разобрался сам. Не знаю, в чём проблема была, но стоило установить:

C#
1
request.ProtocolVersion = HttpVersion.Version10;
И всё заработало.
0
Allier
11.02.2012, 17:57
У меня таже проблема, вот только ни задержка, ни изменение версии не помогает, но вот перезапуск после второго запроса и новая отправка - работают. Есть еще варианты отправлять и третий запрос без перезапуска?
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
11.02.2012, 20:07
Allier, а если объект класса HttpWebRequest и все другие объекты для работы с сетью, что использовались, сделать им Dispose() потом создать новые объекты и через них снова попробовать подключиться?
0
 Аватар для sau
2773 / 2073 / 386
Регистрация: 22.07.2011
Сообщений: 7,820
11.02.2012, 21:37
Да не, проблема не в классах, т.к коннект судя по всему происходит а ожидание ответа по таймауту вырубает. Может там от дос атак защита.
0
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
11.02.2012, 21:56
sau, я просто думаю, что при первом обращении к указанному url объект может оставлять в себе другую служебную инфу, и если сделать снова запрос url с помощью этого же объекта, то можно выявить, что вы уже посещали предыдущий url. Это мои только размышления ничем не подтвержденные, но думаю стоит это проверить - попробовать обращаться к url каждый раз "с нуля" созданным объектом
0
5 / 5 / 2
Регистрация: 12.08.2011
Сообщений: 95
12.02.2012, 10:56  [ТС]
Не забывайте также всегда закрывать StreamReader и HttpWebResponse.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2012, 10:56
Помогаю со студенческими работами здесь

Странное поведение метода Sort()
Добрый день. Подскажите пожалуйста по C#. У меня есть некоторый объект List. Применяют к нему сортировку вот так: ...

Странное поведение Command Line Parser
Работаю с https://commandline.codeplex.com Создал простой класс опций: sealed class Options { public string InputFile...

Странное поведение программы при WindowState = Maximized
всем доброго времени суток! .NET 4.5.1, MS VS 2012, Win 8. Написал часть кода при сабжевом свойстве "Normal" главной...

HttpWebRequest кодировка
Получаю код страницы через HttpWebRequest, но русские символы отображаются в виде вопросиков �����... ...

HttpWebRequest и HttpWebResponse
Скажите, есть ли какая-нибудь альтернатива HttpWebRequest и HttpWebResponse для работы с хттп, но не используя Internet Explorer? Эти...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод Сайт называется reddit: The Thinkpad X220 Tablet is the best budget school laptop period. Это. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru