ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

С# Авторизация на OD.
  #1  
Старый 23.07.2009, 13:53
Аватар для noCnuHeJIonaTou
noCnuHeJIonaTou
Новичок
Регистрация: 15.03.2009
Сообщений: 9
Провел на форуме:
35702

Репутация: 2
По умолчанию С# Авторизация на OD.

Нужно программно (Visual Studio - C#) пройти авторизацию на сайте www.odnoklassniki.ru.
Юзаю Http Analyzer.
Составил GET запрос:

Код:
private void button4_Click(object sender, EventArgs e)
{ 
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://www.odnoklassniki.ru");
myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.37 Safari/530.5"; 
myHttpWebRequest.Accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5"; 
myHttpWebRequest.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4"); 
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream()); 
MessageBox.Show(myStreamReader.ReadToEnd()); 
string sCookies = ""; 
if (!String.IsNullOrEmpty(myHttpWebResponse.Headers["Set-Cookie"])) 
{ 
sCookies = myHttpWebResponse.Headers["Set-Cookie"]; 
}
}
Это вроде верно, в MessageBox получается начальная страничка.

Нашел кое-какую информацию, но не могу разобраться.
Запутался с составлением POST запроса, нужно отправить на сайт лог и пасс, подскажите как? или на наглядном примере объясните)
либо приму ссылочки с полезной инфой.
 
Ответить с цитированием

  #2  
Старый 23.07.2009, 14:33
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

Писал для себя на VB.NET на VS2008TS, думаю не составит труда перевести на C#
Код:
    Public Function Request(Dim Login as String, Dim Pass as String, ByVal URL as String, Dim RegEx_Parse as String, Dim RegEx_Denial as String)
        Dim StreamReader As StreamReader = Nothing
        Dim StreamWriter As StreamWriter = Nothing
        Dim RegEx As New System.Text.RegularExpressions.Regex("")
        Dim Match As System.Text.RegularExpressions.Match
        Dim Req As HttpWebRequest = Nothing
        Dim Resp As HttpWebResponse = Nothing
        Dim Send As String = "login=" & Login & "&pass=" & Pass
        Dim Content As String = Nothing

        Dim Cookie As New CookieCollection
        Cookie.Add(New Cookie("name", "value", "path", "domain")) 'Если нужно используем кукисы + атачим их

        Dim Result As String = Nothing

        Try
            Req = WebRequest.Create(Site.URL)
            Req.Method = WebRequestMethods.Http.Post
            Req.ContentLength = Send.Length
            Req.ContentType = "application/x-www-form-urlencoded"
            Req.CookieContainer = New CookieContainer 'Создаём контейнер для кукисов
            Req.CookieContainer.Add(Cookie) 'Атачим кукисы

            StreamWriter = New StreamWriter(Req.GetRequestStream, System.Text.Encoding.Default)
            StreamWriter.Write(Send)
            StreamWriter.Close()

            Resp = Req.GetResponse
            Cookie = Resp.Cookies 'Получаем Кукисы

            StreamReader = New System.IO.StreamReader(Resp.GetResponseStream, System.Text.Encoding.Default)
            Content = StreamReader.ReadToEnd

            Match = RegEx.Match(Content, Site.RegEx_Denial, RegexOptions.Singleline Or RegexOptions.IgnoreCase)

            If Match.Success = False Then
                Match = RegEx.Match(Content, Site.RegEx_Parse, RegexOptions.Singleline Or RegexOptions.IgnoreCase)

                If Match.Success = True Then
                    Result = Match.Groups(1).Value
                End If
            End If

            Resp.Close()
            StreamReader.Close()
        Catch ex As Exception
            MsgBox("Ошибка " & ex.Message)
        End Try

        Return Result
    End Function
Отправка данных + парсинг ответа регексами

Последний раз редактировалось FireFenix; 23.07.2009 в 14:48..
 
Ответить с цитированием

  #3  
Старый 23.07.2009, 15:52
Аватар для noCnuHeJIonaTou
noCnuHeJIonaTou
Новичок
Регистрация: 15.03.2009
Сообщений: 9
Провел на форуме:
35702

Репутация: 2
По умолчанию

Что такое есть регекс Оо?
 
Ответить с цитированием

  #4  
Старый 23.07.2009, 16:05
Аватар для Kaimi
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

Регуля́рные выраже́ния (англ. regular expressions, сокр. RegExp, RegEx, жарг. регэ́кспы или ре́гексы) — система синтаксического разбора текстовых фрагментов по формализованному шаблону, основанная на системе записи образцов для поиска. (с) wiki
 
Ответить с цитированием

  #5  
Старый 23.07.2009, 18:10
Аватар для noCnuHeJIonaTou
noCnuHeJIonaTou
Новичок
Регистрация: 15.03.2009
Сообщений: 9
Провел на форуме:
35702

Репутация: 2
По умолчанию

Вот написал вроде POST запрос:

Код:
        public void post_request(string Login,string Pass)
        {
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://wg53.odnoklassniki.ru/cdk/st.cmd/login/tkn/718");
            myHttpWebRequest.Method = "POST";
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/2.0.172.37 Safari/530.5";
            myHttpWebRequest.Accept = "application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
            String Send = "st.posted=set&st.email="+Login+"&st.password="+Pass+"+&button_go=%D0%92%D0%BE%D0%B9%D1%82%D0%B8";
            byte[] ByteArr = System.Text.Encoding.Default.GetBytes(Send);
            myHttpWebRequest.ContentLength = ByteArr.Length;
            myHttpWebRequest.GetRequestStream().Write(ByteArr, 0, ByteArr.Length);
           
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream());
            
            MessageBox.Show(myStreamReader.ReadToEnd());
        }
на выходе как я понимаю получаю все время "неверный логин или пароль" . проблема в кодировке? или код кривой?)
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Авторизация nonamez PHP, PERL, MySQL, JavaScript 9 07.06.2009 19:26
Авторизация + SSL (PHP) sNt PHP, PERL, MySQL, JavaScript 4 29.04.2009 14:19
MAIL.ru авторизация на perl rdrule PHP, PERL, MySQL, JavaScript 5 17.04.2009 20:31
[Windos XP] Авторизация. Обход. Или сброс пароля. Хелпер АнтиАдмин 10 09.04.2009 05:02
Авторизация в письме MONARH E-Mail 9 04.12.2008 16:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ