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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.07.2011, 21:05   #1
fenix19910
Новичок
Джуниор
 
Регистрация: 21.07.2011
Сообщений: 1
По умолчанию Post авторизация

На сайте реализована авторизация через метод POST. Пишу программу, чтобы она могла авторизоваться на сайте и смотреть личные данные/сообщения клиента, который пользуется данной программой (скажу сразу, никаких взломов). Перечитал пол инета, вроде что то нашёл:
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(" http://site.info/component/comprofiler/login.html");
// Разрешаем авторедирект
httpWebRequest.AllowAutoRedirect = false;
// Создаем для запроса новый контейнер для хранения сессий
httpWebRequest.CookieContainer = new CookieContainer();
// Следующие строки итак понятны
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "application/x-www-form-urlencoded";
// Перед тем как заполнять поля формы, текст запроса конвертируем в байты
byte[] ByteQuery = System.Text.Encoding.ASCII.GetBytes ("username=user&passwd=qwer");
// Длинна запроса (обязательный параметр)
httpWebRequest.ContentLength = ByteQuery.Length;
// Открываем поток для записи
Stream QueryStream = httpWebRequest.GetRequestStream();
// Записываем в поток (это и есть POST запрос(заполнение форм))
QueryStream.Write(ByteQuery, 0, ByteQuery.Length);
// Закрываем поток
QueryStream.Close();
// Объект с ответом сервера
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.Get Response();
// Присваиваем сессию
httpWebResponse.Cookies = httpWebRequest.CookieContainer.GetC ookies(httpWebRequest.RequestUri);
if (httpWebResponse.Cookies != null)
{
// Добавляем сессию в наш контейнер для дальнейшего использования
Cooks.Add(httpWebResponse.Cookies);
}
// Открываем поток для чтения
Stream stream = httpWebResponse.GetResponseStream() ;
// Читаем из потока
StreamReader reader = new StreamReader(stream);
// Возвращаем результат запроса
return reader.ReadToEnd();
Пишу всё это в переменную, смотрю её, в ней написано "Сессия истекла или в Вашем браузере отключены куки. Пожалуйста, обновите страницу, перед ее заполнением. " Либо я как то неправильно интерпретировал полученный результат, либо где-то закрался epic fail. Прошу помощи, голова уже не соображает...
fenix19910 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация на UCOZ с idHTTP.Post Stalkker247 Работа с сетью в Delphi 15 14.03.2012 13:34
Post Aleksandr69 Общие вопросы Delphi 0 30.03.2011 15:44
Обычная авторизация или авторизация на уровне браузера? calugin Безопасность, Шифрование 0 13.01.2011 00:34
Хитрая авторизация на сайте метод post OkeaH Работа с сетью в Delphi 8 27.02.2009 19:49