Чем воспользоваться?[C#]

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by cheater_man, 28 Aug 2010.

  1. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Нужно войти под своим логином на например: http://www.24video.net/
    1.Что лучше использовать WebBrowser или httpWebRequest?
    С WebBrowser'ом работал малость, но уж очень он медленно работает(
    Что посоветуете?
    2.C httpWebRequest вообще не работал. Нагуглить что-то ничего не смог. Люди подскажите как с ним обращаться.Желательно с примерами.
     
  2. miako

    miako Member

    Joined:
    20 Jan 2010
    Messages:
    154
    Likes Received:
    13
    Reputations:
    5
    http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.aspx
    http://www.rsdn.ru/article/inet/httpweb.xml
     
  3. Tigger

    Tigger Elder - Старейшина

    Joined:
    27 Aug 2007
    Messages:
    936
    Likes Received:
    527
    Reputations:
    204
    httpWebRequest

    ищи на MSDN'e
     
  4. cheater_man

    cheater_man Member

    Joined:
    13 Nov 2009
    Messages:
    651
    Likes Received:
    44
    Reputations:
    7
    Пишу так:
    Code:
    HttpWebResponse result = null;
                HttpWebRequest req = null;
                StreamReader sr = null;
                Stream ReceiveStream = null;
                String answer = String.Empty,cookieVal = String.Empty;
                Encoding encode = Encoding.GetEncoding("windows-1251");
                try
                {
                req = (HttpWebRequest)HttpWebRequest.Create("http://www.24video.net/auth/login");
                req.UserAgent = "Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0)";
                req.Method = "POST";
                req.AllowAutoRedirect = false; // Важный пункт
                req.ContentType = "application/x-www-form-urlencoded";
                byte[] SomeBytes = null;
                string FormParams = "username=Tester&password=*****";
                SomeBytes = Encoding.UTF8.GetBytes(FormParams);
                req.ContentLength = SomeBytes.Length;
                Stream newStream = req.GetRequestStream();
                newStream.Write(SomeBytes, 0, SomeBytes.Length);
                newStream.Close();
                result = (HttpWebResponse)req.GetResponse();
                cookieVal = result.GetResponseHeader("Set-Cookie"); // забираем куки
                req.Headers.Add(HttpRequestHeader.Cookie, cookieVal);
                ReceiveStream = result.GetResponseStream();
                sr = new StreamReader(ReceiveStream, encode);
                answer = sr.ReadToEnd();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                //обрабатываете ошибки
                }
                finally
                {
                if (sr != null) sr.Close();
                if (ReceiveStream != null) ReceiveStream.Close();
                if (result != null) result.Close();
                textBox1.Text = answer;
                }
    
    возвращает это:
    Code:
    {"result":true,"info":"Tester","adult":true}
    
    авторизация проходит.Cookies не сохраняются :( .
    Нужно перейти в раздел Добавить видео-> Загрузить по ссылке(и загрузить какое-нибудь видео).
    Как это сделать? Там javascript :(
     
    #4 cheater_man, 30 Aug 2010
    Last edited: 30 Aug 2010