Формирование Get запроса (имитация нажатия кнопки на странице) - C#
Формулировка задачи:
У меня задача такая: нужно съэмитировать нажатие кнопки на html странице без всяких WebBrowser и тп. Как я понял надо отправлять Get запрос на страницу. Ситуация такая: есть html страница расположенная по адрессу http://gallery.pitnet.ru/register.php на ней две кнопки, согласен и не согласен. Нужно нажать на первую. Когда на нее нажимаешь в браузере, адресс страницы остается тот-же, но содержимое меняется. То есть кнопка отправляет запрос какому-то скрипту. Пролистав исходный код страницы я не увидел никакого запроса. Может быть вы мне поможете. Вот код страницы:
Кнопки находятся вот тут:
Get запрос я отправляю вот так:
Заранее спасибо!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html dir="ltr"> <head> <title>фото.галерея | На других посмотреть и себя показать!</title> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <meta name="description" content="фото.галерея | На других посмотреть и себя показать!"> <meta name="keywords" content=""> <meta name="robots" content="index,follow"> <meta name="revisit-after" content="10 days"> <meta http-equiv="imagetoolbar" content="no"> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <link rel="stylesheet" href="./templates/default/style.css?8" type="text/css"> <!--[if IE]><link rel="stylesheet" type="text/css" href="./templates/default/ie.css" media="all" /><![endif]--> <link rel="icon" type="image/png" href="./icon.png" /> <script language="javascript" type="text/javascript"> <!-- var captcha_reload_count = 0; var captcha_image_url = "./captcha.php"; function new_captcha_image() { if (captcha_image_url.indexOf('?') == -1) { document.getElementById('captcha_image').src= captcha_image_url+'?c='+captcha_reload_count; } else { document.getElementById('captcha_image').src= captcha_image_url+'&c='+captcha_reload_count; } document.getElementById('captcha_input').value=""; document.getElementById('captcha_input').focus(); captcha_reload_count++; } // --> </script> <script type="text/javascript" src="js/detailsfunc.js"></script> <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js/lightbox.js"></script> <script type="text/javascript" src="highslide/highslide-with-html.js"></script> <link rel="stylesheet" type="text/css" href="highslide/highslide.css" /> <script type="text/javascript"> hs.graphicsDir = 'highslide/graphics/'; hs.outlineType = 'rounded-white'; hs.showCredits = false; hs.wrapperClassName = 'draggable-header'; hs.align = 'center'; </script> </head> <body > <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="outl"></td> <td width="1002"> <table width="100%" border="0" cellpadding="0" cellspacing="0"><td><!--ads_zone 1000x90 <embed src="ads/ads_1002x90_kino.swf" quality="high" bgcolor="#000" width="1000" height="90">--> <table width="1002px" height="150px" border="0" cellpadding="0" cellspacing="0" class="shapka"><td> <div class="na_8_marta"></div> <div class="logo"><div id="zima"></div><div id="ngod"></div><div id="serd"></div><div id="zvezda"></div><div id="flo"></div><a href="/" alt="фото.галерея | photo.gallery | Фотографируем, общаемся, объединяемся!" title="фото.галерея | photo.gallery | Фотографируем, общаемся, объединяемся!"><img src="./templates/default/images/gall_sep.gif"></a></div> <div class="adszone"> <!--первомайские шары--> <div class="balmay"></div> <!--end первомайские шары--> <!-- <a href="http://gallery.pitnet.ru/advanced/estetiq/estetiq.php"><img src="./ads/fraim.gif"></a> --> <div style="position: relative; float: right; right: 5px;"> <a href='http://tvmasterskaya.pitnet.ru/'><img src='ads/ads_250x90_tvm.jpg' /></a> </div> <!-- <script language="JavaScript" type="text/javascript"> function randomize(min,max) {return((Math.ceil(Math.random() * (max - min + 1) + min - 1))+"")} document.write('<iframe width="250" height="90" src="ads/shapka25090_#id.html" frameborder="0" scrolling="no" ></iframe>'.replace(/#id/i,randomize(1,2))) </script> --> <!-- <a href='http://tvmasterskaya.pitnet.ru/'><img src='ads/ads_250x90_tvm.jpg' /></a> --></div> </td></table></td> <tr> <td> <table width="100%" border="0" cellpadding="10" cellspacing="0"> <tr> <td width="32%" valign="top" class="lb"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <td class="bz">Фото.галерея</td> <tr> <td class="bc"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr><td width="40%"><form action="./login.php" method="post"> <table width="100%" border="0" cellpadding="0" cellspacing="5"><td><input type="text" name="user_name" class="logininput" value="Логин" onblur="if(this.value=='') this.value='Логин';" onfocus="if(this.value=='Логин') this.value='';" /></td> <tr> <td><input type="password" name="user_password" class="logininput" value="Пароль" onblur="if(this.value=='') this.value='Пароль';" onfocus="if(this.value=='Пароль') this.value='';" /></td> <tr> <td><table border="0" cellspacing="0" cellpadding="0"> <tr> <td><input type="checkbox" name="auto_login" value="1" /></td> <td> Запомнить меня</td> </tr> </table></td> <tr> <td><input type="submit" value="Войти" class="button" style="width: 120px;"/></td> </table></form> </td> <td width="60%" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="5"><td><li><a href="./member.php?action=lostpassword">Забыл пароль</a></li> <li><a href="./register.php">Регистрация</a></li><li><a href="complaint">Пожаловаться</a></li><li><a href="faq">Раздел помощи</a></li></td></table></td> </table></td> </table> </td> <td width="68%" valign="top" class="rb"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <td> <td><table width="100%" border="0" cellpadding="0" cellspacing="0"> <td class="clicks"><span class="clickstream"><a href="././" class="clickstream">Главная страница</a> → Регистрация</span></td> <tr> <td class="bcb"><!--rules--> <span class="vtext">Общие положения</span><br /><br /> Фото.галерея предназначена для размещения и обсуждения фотографий, общения как фотографов-профессионалов, так и фотолюбителей на темы, связанные с фотографией. Оценки, рейтинги - не более чем попытка отбора лучших фото при помощи самих участников. Не надо воспринимать их слишком серьезно. Помните что фото.галерея, не Ваш личный домашний фотоальбом, поэтому для "слива фоток с вечеринки" или фотографий типа "Отдыхаем =))" лучше воспользоваться другими ресурсами. Предпочтение отдается хорошей, качетвенной фотографии, фотографии сделанные мобильными телефонами и фотокамерами с низким разрешением будут удаляться на усмотрение администрацией ресурса. Приветствуется активная позиция участников, т.е. не просто присылаете фото и ждете откликов, а сами активно участвуете в обсуждениях. Мы уверены, что вы - честный человек, уважающий авторские права и других участников, поэтому ждем, что вы будете присылать только свои собственные фотографии, корректно и вежливо комментировать чужие фотографии, а также уважать чужое мнение (пусть и не совпадающее с вашим собственным). Если вы умеете или только пытаетесь создавать фотографии, которые не стыдно поместить в раму и повесить на стену - добро пожаловать! <br /><br /> <ol> <li><span class="tliul">Фотографии должны быть основаны на собственных (авторских, выполненных собственноручно) фотографиях участника, снятых на фотокамеру.</span></li> <li><span class="tliul">Все фотографии принадлежат их авторам.</span></li> <li><span class="tliul">Фотография должна быть в разрешенном формате нашей галереи, рекомендованные размеры: 900x1024px. В случае если Ваша фотография крупная - она автоматически уменьшится до рекомендованного размера при загрузке на сайт.</span></li> <li><span class="tliul">Запрещено создание и/или использование нескольких аккаунтов одним участником за исключением служебных, которые разрешены администрацией.</span></li> <li><span class="tliul">Запрещено участие фотографий, не являющихся собственностью самих авторов (сканированных из журналов, скопированных с web-сайтов и т.п.).</span></li> <li><span class="tliul">Запрещена публикация любой порно продукции.</span></li> <li><span class="tliul">Для эротических фото авторы обязаны указывать категорию "ню".</span></li> <li><span class="tliul">Детская эротика запрещена.</span></li> <li><span class="tliul">Запрещено размещение двух (и более) одинаковых снимков в галерее.</span></li> <li><span class="tliul">Запрещено размещение более 5-ти снимков в сутки.</span></li> <li><span class="tliul">Запрещены снимки низкого качества.</span></li> <li><span class="tliul">Запрещены снимки с содержанием на них спиртных напитков, без художественного смысла.</span></li> <li><span class="tliul">Запрещены любые переписки в комментариях, даем только конкретный комментарий к конкретной фотографии.</span></li> <li><span class="tliul">Запрещена реклама (Отойти от правил можно с разрешения администратора).</span></li> <li><span class="tliul">Запрещена продажа товаров (автомобилей, техники, предметов быта и т.п.). Размещение такого рода фотографий будет расценена как спам, флуд, флейм и т.п. Галерея - не газета бесплатных объявлений. Нарушители окажутся в блоке сроком от 10 дней и более.</span></li> <li><span class="tliul">Снимки размещенные в несоответствующую теме фотографии в другую категорию - удаляются без ведома автора.</span></li> <li><span class="tliul">Фотографии, нарушающие данные правила, удаляются без предварительного уведомления.</span></li> <li><span class="tliul">Если вы используете один компьютер для нескольких человек для входа на сайт (например, муж и жена имеют разные аккаунты), во избежание ненужных недоразумений, предупредите об этом администрацию, и, пожалуйста, в таком случае не оценивайте друг друга (со стороны это будет выглядеть как накрутка), ведь вы можете сказать все непосредственно.</span></li> <li><span class="tliul">В случае, если аккаунт участника, не используется более 6-х месяцев, он удаляется автоматически.</span></li> <li><span class="tliul">Если комментарии посетителя носят оскорбительный характер, содержат не нормативную лексику (нецензурную брань), либо не удовлетворяют соображениям элементарной этики - аккаунт участника может быть заблокирован сроком от 20 дней и более (на усмотрение Администратора), а при систематическом повторении неэтичного поведения - аккаунт может быть удален. <br />Администрация сайта оставляет право удаления комментариев на снимках учетным записям владельцу снимка без объяснения причины.</span></li> <li><span class="tliul">Удаление опубликованных фотографий производиться по просьбе владельца снимка отправленной по контактам указанным в подписи сайта. Срок рассмотрения просьбы на удаление может достигать 10 рабочих дней (не считая праздников и форс мажорных обстоятельств). В любом случае, если Вы обратились с просьбой удалить ваши фотографии, а Вам не отвечают, попробуйте повторно сделать запрос на адрес электронной почты указанный в подписи сайта. Техника не идеальна и есть причины не зависящие от Администрации, по которым ваша просьба может быть не услышана. (плохое качество связи, сбои в серверном и клиентском ПО).</span></li> <li><span class="tliul"> Запрещена публикация снимков и комментарием к ним в любой форме нарушающие законодательства РФ. (разжигание межнациональной розни, призывы к насилию и т.д.) <li><span class="tliul">Администрация, оставляет за собой право наложения любых ограничений на учетные записи пользователей без предварительного уведомления и объяснения причин. <br />Помните: В чужом доме не будь приметлив, а будь приветлив. (с)</span></li> <li><span class="tliul">С вопросами, пожеланиями и предложениями Вы можете обращаться на контакты указанные в подписи сайта.</span></li> Любую корреспонденцию Вы всегда можете передать через нашего партнера с пометкой gallery.pitnet.ru в лице ООО ''СитиНэт'' 685000 г. Магадан ул. Пролетарская д.68 офис сети ''ПитНет'.'</span></li> </ol> <br /> <span class="vtext">Ст. 130 «Оскорбление» Уголовного кодекса РФ гласит:</span> <ol> <li><span class="tliul">Оскорбление, то есть унижение чести и достоинства другого лица, выраженное в неприличной форме, – наказывается штрафом в размере до ста минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужденного за период до одного месяца, либо обязательными работами на срок до ста двадцати часов, либо исправительными работами на срок до шести месяцев.</span></li> <li><span class="tliul">Оскорбление, содержащееся в публичном выступлении, публично демонстрирующемся произведении или средствах массовой информации, – наказывается штрафом в размере до двухсот минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужденного за период до двух месяцев, либо обязательными работами на срок до ста восьмидесяти часов, либо исправительными работами на срок до одного года.</span></li> </ol> <br /> <span class="vtext">Статья 20.1. Мелкое хулиганство:</span> <ol> <li><span class="tliul">Мелкое хулиганство, то есть нарушение общественного порядка, выражающее явное неуважение к обществу, сопровождающееся нецензурной бранью в общественных местах, оскорбительным приставанием к гражданам, а равно уничтожением или повреждением чужого имущества, – влечет наложение административного штрафа в размере от пяти до десяти минимальных размеров оплаты труда или административный арест на срок до пятнадцати суток.</span></li> <li><span class="tliul">Те же действия, сопряженные с неповиновением законному требованию представителя власти либо иного лица, исполняющего обязанности по охране общественного порядка или пресекающего нарушение общественного порядка, – влекут наложение административного штрафа в размере от десяти до двадцати пяти минимальных размеров оплаты труда или административный арест на срок до пятнадцати суток.</span></li> </ol><br /> <span class="vtext">Краткая юридическая справка: Чем отличается эротика от порнографии?</span> <br /><br /> <table width="100%" border="0" cellpadding="10" cellspacing="0" style="border: 1px #bbb solid"><td>Чётких критериев, отличающих эротику от порнографии в российском законодательстве (а в общем-то и в международных актах тоже) ещё нет. Однако, есть критерии, выработанные юридической практикой. <br /> Порнографию от эротики, как правило, отличают по следующим критериям: <br /> крайне непристойное, циничное изображение половых отношений;<br /> цель — возбуждение половых инстинктов;<br /> акцент на физиологии аспектах половых отношений, открытый показ форм сексуальных отношений в натуральном виде. «Детализированное, натуралистическое изображение, словесное описание или демонстрация полового акта, половых органов, имеющие целью сексуальное возбуждение», — так звучит подготовленное Минкультурой определение порнографии для нового законопроекта.<br /> Эротика также сопряжена с отображением человеческого тела, но в большей мере с целью подчеркнуть красоту человеческого тела, многообразие форм его выражения, без специальной цели вызвать желание полового сношения.<br /> Просмотр альбомов или разделов, содержащих эротические фото, разрешён только для посетителей, достигшим 18 лет. Ответственность за просмотр эротических изображений несовершеннолетним лицом лежит на его законном опекуне.</td></table> <!--rules end--> <br /><br /> <table border="0" cellspacing="1" cellpadding="1" align="center"> <tr> <td> <form method="post" action="./register.php"> <input type="hidden" name="action" value="register" /> <input type="submit" value="Согласен" class="button" /> </form> </td> <td> <form method="post" action="././"> <input type="submit" value="Не согласен" class="button" /> </form> </td> </tr> </table></td> </table></td> </table> </td> </table></td> <tr> <td><table width="100%" border=0 align="center" cellpadding=10 cellspacing=0 class="bordert0"> <tr> <td valign="top"> <p class="copy"> Права на все фотографии, размещенные в фото.галерее, принадлежат авторам этих фото.<br />По вопросам использования фотографий в каких-либо целях убедительная просьба обращаться к их авторам.<br /><br /> Автор проекта: <a href="root">Виталий Марилов (root)</a> Вопросы на e-mail: <a href="mailto:removed@mail.ru" />removed@mail.ru</a><br /> Тех. поддержка, реклама: <a href="kapanir">Kapanir (Денис)</a> <br /><br /> «Фото.Галерея» работает на <a href="http://4homepages.de/">4images 1.7.10</a><br />© 2006-2012 <a href="http://gallery.pitnet.ru/">«Фото.Галерея»</a></span> </td></tr></table></td> </table> </td> <td class="outr"></td> </table> </body> </html>
<table border="0" cellspacing="1" cellpadding="1" align="center"> <tr> <td> <form method="post" action="./register.php"> <input type="hidden" name="action" value="register" /> <input type="submit" value="Согласен" class="button" /> </form> </td> <td> <form method="post" action="././"> <input type="submit" value="Не согласен" class="button" /> </form> </td> </tr> </table></td> </table></td> </table> </td> </table></td>
private static string GETRequest(string Url) { System.Net.WebRequest req = System.Net.WebRequest.Create(Url); System.Net.WebResponse resp = req.GetResponse(); System.IO.Stream stream = resp.GetResponseStream(); System.IO.StreamReader sr = new System.IO.StreamReader(stream, System.Text.Encoding.Default); string Out = sr.ReadToEnd(); sr.Close(); return Out; }
Решение задачи: «Формирование Get запроса (имитация нажатия кнопки на странице)»
textual
Листинг программы
System.Net.WebRequest reqPOST = System.Net.WebRequest.Create(@"http://gallery.pitnet.ru/register.php"); reqPOST.Method = "POST"; // Устанавливаем метод передачи данных в POST reqPOST.Timeout = 120000; // Устанавливаем таймаут соединения reqPOST.ContentType = "application/x-www-form-urlencoded"; // указываем тип контента // передаем список пар параметров / значений для запрашиваемого скрипта методом POST byte[] sentData = System.Text.Encoding.Default.GetBytes("message=" + System.Web.HttpUtility.UrlEncode("отправляемые данные")); reqPOST.ContentLength = sentData.Length; System.IO.Stream sendStream = reqPOST.GetRequestStream(); sendStream.Write(sentData, 0, sentData.Length); sendStream.Close();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д