Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C#] Post запрос на форум 
:(
    Опции темы
Rivus
Дата 23.5.2012, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.1.2012

Репутация: нет
Всего: нет



Добрый день, форумчане. 

Допустим, есть форум на IPB, у него имеется логин форма. 
Путём сниффера, раздобыл, что отправляются 4 значения : 
referer - с какого сайта мы пришли на страницу логина
username - само собой
password - само собой
rememberMe - запоминание

В хедеры прописывается только "Content-Type". 

Код. Отправляем запрос : 
Код

WebRequest wRequest = WebRequest.Create(url);
            wRequest.Method = "POST";
            wRequest.Timeout = 10000;
            wRequest.ContentType = "application/x-www-form-urlencoded";
            byte[] sendData = Encoding.GetEncoding(1251).GetBytes("referer:" + ""  + "\nusername:" + HttpUtility.UrlEncode(user) + "\npassword:" + HttpUtility.UrlEncode(pass));
            wRequest.ContentLength = sendData.Length;
            Stream sendStream = wRequest.GetRequestStream();
            sendStream.Write(sendData, 0, sendData.Length);
sendStream.Close();

Забираем ответ : 
Код

            WebResponse response = wRequest.GetResponse();    
            sendStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(sendStream);
            string responseFromServer = reader.ReadToEnd();
            lastResponse = responseFromServer;
            reader.Close();
            sendStream.Close();
            response.Close();


Результатом моего запроса каждый раз является просто код страницы. Без сообщений об ошибках или чём либо. Что и где сделано не так как надо? 


из логин формы : 

Код

            <input type="hidden" name="referer" value="http://google.com/">
            <div id="regular_signin">
                <a id="_regularsignin"></a>
                <h3 class="bar">Enter your sign in name and password</h3>
                <ul>
                    <li class="field">
                        <label for="username">Username:</label>
                        <input id="username" type="text" class="input_text" name="username" size="25">
                    </li>
                    <li class="field">
                        <label for="password">Password:</label>
                        <input id="password" type="password" class="input_text" name="password" size="25"><br>
                    </li>
                </ul>
            </div>
            <hr>
            <fieldset id="signin_options">
                <legend>Sign in options</legend>
                <ul>
                    <li class="field checkbox">
                        <input type="checkbox" id="remember" checked="checked" name="rememberMe" value="1" class="input_check">
                        <label for="remember">
                            Remember me<br>
                            <span class="desc">This is not recommended for shared computers</span>
                        </label>
                    </li>
                        <li class="field checkbox">
                            <input type="checkbox" id="invisible" name="anonymous" value="1" class="input_check">
                            <label for="invisible">
                                Sign in anonymously<br>
                                <span class="desc">Don't add me to the active users list</span>
                            </label>
                        </li>
                    
                </ul>
            </fieldset>
            <fieldset class="submit">
                <input type="submit" class="input_submit" value="Sign In">
            </fieldset>


Это сообщение отредактировал(а) Rivus - 23.5.2012, 18:20
PM MAIL   Вверх
Экскалупатор
Дата 23.5.2012, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



можно использовать контрол браузер. грузить в него страницу, и эмулировать действия пользователя, т.е. вводить значения, жамкать на кнопки и прочее. так будет проще намного.
PM MAIL ICQ   Вверх
Rivus
Дата 23.5.2012, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.1.2012

Репутация: нет
Всего: нет



Цитата(Экскалупатор @  23.5.2012,  20:21 Найти цитируемый пост)
можно использовать контрол браузер. грузить в него страницу, и эмулировать действия пользователя, т.е. вводить значения, жамкать на кнопки и прочее. так будет проще намного.

Да, но это будет куда дольше по времени.. 
PM MAIL   Вверх
Экскалупатор
Дата 23.5.2012, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



"дольше" - это измерение в попугаях. с чего ты это взял? пол секунды решит что то? да нужно будет дождаться сначала загрузки страницы, зато ты будешь уверен(с какой то долей вероятности), что загрузятся скрипты и выполняться, т.е. все будет так как задумал владелец сайта. а в итоге будет меньше гемора.

Цитата

"referer:" + ""  + "\nusername:" + HttpUtility.UrlEncode(user) + "\npassword:" + HttpUtility.UrlEncode(pass)

ты уверен что сервер ждет именно в таком виде данные? особенно меня смущают "\n". хз почему, но у меня есть стойкая уверенность, что должно быть не так.


Это сообщение отредактировал(а) Экскалупатор - 23.5.2012, 22:52
PM MAIL ICQ   Вверх
Rivus
Дата 24.5.2012, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 13.1.2012

Репутация: нет
Всего: нет



Цитата(Экскалупатор @  23.5.2012,  22:51 Найти цитируемый пост)
ты уверен что сервер ждет именно в таком виде данные? особенно меня смущают "\n". хз почему, но у меня есть стойкая уверенность, что должно быть не так.

А как узнать какой правильный формат? 

Хром выдаёт всё вот так: 

Код

Form Data:
referer:http://google.com
username:asdas
password:sadas
rememberMe:1

И если не "\n", то что? 

Это сообщение отредактировал(а) Rivus - 24.5.2012, 00:39
PM MAIL   Вверх
diadiavova
Дата 24.5.2012, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 18
Всего: 142



Цитата(Rivus @  23.5.2012,  19:12 Найти цитируемый пост)
Без сообщений об ошибках или чём либо.

Чтобы получать сообщения об ошибках надо  установить AllowAutoRedirect= false. А вообще, трудно что-либо сказать, по такому краткому описанию того, что отправляет браузер серверу и что получает в ответ. 
Цитата(Экскалупатор @  23.5.2012,  21:21 Найти цитируемый пост)
можно использовать контрол браузер.

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


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Bestoloch
Дата 30.5.2012, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 84
Регистрация: 29.6.2009

Репутация: нет
Всего: нет



Цитата(Rivus @  23.5.2012,  22:37 Найти цитируемый пост)
А как узнать какой правильный формат? 

Fiddler Web Debugger в помощь. Там увидишь что и в каком виде приходит/отправляется.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.