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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> исчезает ContentLength 
:(
    Опции темы
wester
Дата 24.12.2010, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Доброго времени суток.
написал код для авторизации на rutracker
Код

 public void Login()
        {
            #region get-cookie

            var webRequest = (HttpWebRequest)WebRequest.Create("http://login.rutracker.org/forum/login.php");
            webRequest.UserAgent =
                "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13";
            webRequest.Accept =
                "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            webRequest.SendChunked = true;
            webRequest.Headers.Add(HttpRequestHeader.AcceptLanguage, "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3");
            webRequest.Headers.Add(HttpRequestHeader.AcceptCharset, "windows-1251,utf-8;q=0.7,*;q=0.7");
            webRequest.TransferEncoding = "gzip,deflate";
            webRequest.Method = "POST";
            webRequest.KeepAlive = true;
            webRequest.Timeout = 5000;
            webRequest.AllowAutoRedirect = false;
            webRequest.Referer = "http://rutracker.org/forum/index.php";
            const string pwd = "1";
            const string user = "1";
            var postdata = String.Format("login_username={0}&login_password={1}&login={2}", HttpUtility.UrlEncode(user), HttpUtility.UrlEncode(pwd), "%C2%F5%EE%E4");
            var bPostdata = Encoding.ASCII.GetBytes(postdata);
            webRequest.ContentLength = bPostdata.Length; //
            webRequest.ContentType = "application/x-www-form-urlencoded";
            webRequest.Host = "login.rutracker.org";
           webRequest.GetRequestStream().Write(bPostdata, 0, bPostdata.Length);


            var webResp = (HttpWebResponse) webRequest.GetResponse(); //
            var cookie = webResp.Headers["Set-Cookie"];
            Console.WriteLine(webResp.StatusCode);
            #endregion
            

            Console.WriteLine(webResp.Headers["Status"]);

            #region
            webRequest = (HttpWebRequest) WebRequest.Create("http://rutracker.org/forum/index.php");
            webRequest.Proxy = new WebProxy("localhost", 8888);
            webRequest.UserAgent =
                "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13";
            webRequest.Accept =
                "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            webRequest.SendChunked = true;
            webRequest.TransferEncoding = "gzip,deflate";
            webRequest.Method = "GET";
            webRequest.Headers.Add(HttpRequestHeader.KeepAlive,"115");
            
            webRequest.AllowAutoRedirect = true;
            webRequest.Referer = "http://rutracker.org/forum/index.php";
            webRequest.Headers.Add(HttpRequestHeader.Cookie,cookie);
            webResp = (HttpWebResponse) webRequest.GetResponse(); 
            var streamReader = new StreamReader(webResp.GetResponseStream());
            Console.WriteLine(streamReader.ReadToEnd());
            #endregion




        }

но когда я дохожу до строки 29 то получаю WebException с текстом "Удаленный сервер возвратил ошибку: (411) Требуется длина."
смотрю fiddler который слушает мое приложение и действительно поле "Content-Length" не передается. 
хотя я его передавал в 23  строке. Что за глюк ? 
писал код основываясь на http://forum.vingrad.ru/forum/topic-291628...cker/index.html и http://kbyte.ru/ru/Programming/Articles.as...42&mode=art
PM MAIL   Вверх
wester
Дата 24.12.2010, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



глюк был в том, что я отправлял 
// webRequest.SendChunked = true;
// webRequest.TransferEncoding = "gzip,deflate";

как это могло повлиять уму не приложу.
как пойму, тему помечу решенной
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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